< Summary

Information
Class: LGDXRobotCloud.Data.Models.DTOs.V1.Commands.LgdxUserCreateAdminDto
Assembly: LGDXRobotCloud.Data
File(s): /builds/yukaitung/lgdxrobot2-cloud/LGDXRobotCloud.Data/Models/DTOs/V1/Commands/LgdxUserCreateAdminDto.cs
Line coverage
0%
Covered lines: 0
Uncovered lines: 20
Coverable lines: 20
Total lines: 52
Line coverage: 0%
Branch coverage
0%
Covered branches: 0
Total branches: 6
Branch coverage: 0%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
get_Name()100%210%
get_UserName()100%210%
get_Email()100%210%
get_Password()100%210%
get_Roles()100%210%
Validate()0%4260%

File(s)

/builds/yukaitung/lgdxrobot2-cloud/LGDXRobotCloud.Data/Models/DTOs/V1/Commands/LgdxUserCreateAdminDto.cs

#LineLine coverage
 1using System.ComponentModel.DataAnnotations;
 2using LGDXRobotCloud.Data.Models.Business.Administration;
 3
 4namespace LGDXRobotCloud.Data.Models.DTOs.V1.Commands;
 5
 6public record LgdxUserCreateAdminDto : IValidatableObject
 7{
 8  [Required (ErrorMessage = "Please enter a name.")]
 09  public required string Name { get; set; }
 10
 11  [Required (ErrorMessage = "Please enter a username.")]
 012  public required string UserName { get; set; }
 13
 14  [Required (ErrorMessage = "Please enter an email.")]
 15  [EmailAddress (ErrorMessage = "Please enter a valid email.")]
 016  public required string Email { get; set; }
 17
 018  public string? Password { get; set; }
 19
 020  public IEnumerable<string> Roles { get; set; } = [];
 21
 22  public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
 023  {
 024    if (!Roles.Any())
 025    {
 026      yield return new ValidationResult("At least one role is required.", [nameof(Roles)]);
 027    }
 028    int i = 0;
 029    foreach (var role in Roles)
 030    {
 031      if (string.IsNullOrWhiteSpace(role))
 032      {
 033        yield return new ValidationResult($"Role is required.", [nameof(Roles), $"{nameof(Roles)}-{i}"]);
 034      }
 035      i++;
 036    }
 037  }
 38}
 39
 40public static class LgdxUserCreateAdminDtoExtensions
 41{
 42  public static LgdxUserCreateAdminBusinessModel ToBusinessModel(this LgdxUserCreateAdminDto model)
 43  {
 44    return new LgdxUserCreateAdminBusinessModel {
 45      Name = model.Name,
 46      UserName = model.UserName,
 47      Email = model.Email,
 48      Password = model.Password,
 49      Roles = model.Roles,
 50    };
 51  }
 52}