< Summary

Information
Class: LGDXRobotCloud.Data.Models.DTOs.V1.Commands.LgdxUserCreateAdminDtoExtensions
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: 9
Coverable lines: 9
Total lines: 52
Line coverage: 0%
Branch coverage
N/A
Covered branches: 0
Total branches: 0
Branch coverage: N/A
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
ToBusinessModel(...)100%210%

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.")]
 9  public required string Name { get; set; }
 10
 11  [Required (ErrorMessage = "Please enter a username.")]
 12  public required string UserName { get; set; }
 13
 14  [Required (ErrorMessage = "Please enter an email.")]
 15  [EmailAddress (ErrorMessage = "Please enter a valid email.")]
 16  public required string Email { get; set; }
 17
 18  public string? Password { get; set; }
 19
 20  public IEnumerable<string> Roles { get; set; } = [];
 21
 22  public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
 23  {
 24    if (!Roles.Any())
 25    {
 26      yield return new ValidationResult("At least one role is required.", [nameof(Roles)]);
 27    }
 28    int i = 0;
 29    foreach (var role in Roles)
 30    {
 31      if (string.IsNullOrWhiteSpace(role))
 32      {
 33        yield return new ValidationResult($"Role is required.", [nameof(Roles), $"{nameof(Roles)}-{i}"]);
 34      }
 35      i++;
 36    }
 37  }
 38}
 39
 40public static class LgdxUserCreateAdminDtoExtensions
 41{
 42  public static LgdxUserCreateAdminBusinessModel ToBusinessModel(this LgdxUserCreateAdminDto model)
 043  {
 044    return new LgdxUserCreateAdminBusinessModel {
 045      Name = model.Name,
 046      UserName = model.UserName,
 047      Email = model.Email,
 048      Password = model.Password,
 049      Roles = model.Roles,
 050    };
 051  }
 52}