< Summary

Information
Class: LGDXRobotCloud.Data.Models.Business.Automation.AutoTaskBusinessModelExtensions
Assembly: LGDXRobotCloud.Data
File(s): /builds/yukaitung/lgdxrobot2-cloud/LGDXRobotCloud.Data/Models/Business/Automation/AutoTaskBusinessModel.cs
Line coverage
31%
Covered lines: 14
Uncovered lines: 30
Coverable lines: 44
Total lines: 84
Line coverage: 31.8%
Branch coverage
16%
Covered branches: 1
Total branches: 6
Branch coverage: 16.6%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
ToDto(...)0%2040%
ToContract(...)50%22100%

File(s)

/builds/yukaitung/lgdxrobot2-cloud/LGDXRobotCloud.Data/Models/Business/Automation/AutoTaskBusinessModel.cs

#LineLine coverage
 1using LGDXRobotCloud.Data.Contracts;
 2using LGDXRobotCloud.Data.Models.DTOs.V1.Responses;
 3
 4namespace LGDXRobotCloud.Data.Models.Business.Automation;
 5
 6public record AutoTaskBusinessModel
 7{
 8  public required int Id { get; set; }
 9
 10  public string? Name { get; set; }
 11
 12  public required int Priority { get; set; }
 13
 14  public int? FlowId { get; set; }
 15
 16  public string? FlowName { get; set; }
 17
 18  public required int RealmId { get; set; }
 19
 20  public required string RealmName { get; set; }
 21
 22  public Guid? AssignedRobotId { get; set; }
 23
 24  public string? AssignedRobotName { get; set; }
 25
 26  public required int CurrentProgressId { get; set; }
 27
 28  public required string CurrentProgressName { get; set; }
 29
 30  public required IEnumerable<AutoTaskDetailBusinessModel> AutoTaskDetails { get; set; } = [];
 31
 32  public IEnumerable<AutoTaskJourneyBusinessModel> AutoTaskJourneys { get; set; } = [];
 33}
 34
 35public static class AutoTaskBusinessModelExtensions
 36{
 37  public static AutoTaskDto ToDto(this AutoTaskBusinessModel model)
 038  {
 039    return new AutoTaskDto
 040    {
 041      Id = model.Id,
 042      Name = model.Name,
 043      Priority = model.Priority,
 044      Flow = new FlowSearchDto
 045      {
 046        Id = model.FlowId ?? 0,
 047        Name = model.FlowName ?? "Deleted Flow",
 048      },
 049      Realm = new RealmSearchDto
 050      {
 051        Id = model.RealmId,
 052        Name = model.RealmName,
 053      },
 054      AssignedRobot = model.AssignedRobotId == null ? null : new RobotSearchDto
 055      {
 056        Id = model.AssignedRobotId!.Value,
 057        Name = model.AssignedRobotName!,
 058      },
 059      CurrentProgress = new ProgressSearchDto
 060      {
 061        Id = model.CurrentProgressId,
 062        Name = model.CurrentProgressName,
 063      },
 064      AutoTaskDetails = model.AutoTaskDetails.Select(td => td.ToDto()),
 065      AutoTaskJourneys = model.AutoTaskJourneys.Select(tj => tj.ToDto()),
 066    };
 067  }
 68
 69  public static AutoTaskUpdateContract ToContract(this AutoTaskBusinessModel model)
 170  {
 171    return new AutoTaskUpdateContract {
 172      Id = model.Id,
 173      Name = model.Name,
 174      Priority = model.Priority,
 175      FlowId = model.FlowId ?? 0,
 176      FlowName = model.FlowName ?? "Deleted Flow",
 177      RealmId = model.RealmId,
 178      AssignedRobotId = model.AssignedRobotId,
 179      AssignedRobotName = model.AssignedRobotName,
 180      CurrentProgressId = model.CurrentProgressId,
 181      CurrentProgressName = model.CurrentProgressName,
 182    };
 183  }
 84}