|  |  | 1 |  | using System.ComponentModel.DataAnnotations; | 
|  |  | 2 |  | using LGDXRobotCloud.Data.Models.Business.Automation; | 
|  |  | 3 |  |  | 
|  |  | 4 |  | namespace LGDXRobotCloud.Data.Models.DTOs.V1.Commands; | 
|  |  | 5 |  |  | 
|  |  | 6 |  | public record AutoTaskUpdateDto : IValidatableObject | 
|  |  | 7 |  | { | 
|  | 0 | 8 |  |   public string? Name { get; set; } | 
|  |  | 9 |  |  | 
|  | 0 | 10 |  |   public required IEnumerable<AutoTaskDetailUpdateDto> AutoTaskDetails { get; set; } = []; | 
|  |  | 11 |  |  | 
|  |  | 12 |  |   [Required (ErrorMessage = "Please enter a priority.")] | 
|  | 0 | 13 |  |   public required int Priority { get; set; } | 
|  |  | 14 |  |  | 
|  |  | 15 |  |   [Required (ErrorMessage = "Please select a Flow.")] | 
|  | 0 | 16 |  |   public required int FlowId { get; set; } | 
|  |  | 17 |  |  | 
|  | 0 | 18 |  |   public Guid? AssignedRobotId { get; set; } | 
|  |  | 19 |  |  | 
|  |  | 20 |  |   public IEnumerable<ValidationResult> Validate(ValidationContext validationContext) | 
|  | 0 | 21 |  |   { | 
|  | 0 | 22 |  |     foreach (var autoTaskDetail in AutoTaskDetails) | 
|  | 0 | 23 |  |     { | 
|  | 0 | 24 |  |       List<ValidationResult> validationResults = []; | 
|  | 0 | 25 |  |       var vc = new ValidationContext(autoTaskDetail); | 
|  | 0 | 26 |  |       Validator.TryValidateObject(autoTaskDetail, vc, validationResults, true); | 
|  | 0 | 27 |  |       foreach (var validationResult in validationResults) | 
|  | 0 | 28 |  |       { | 
|  | 0 | 29 |  |         yield return validationResult; | 
|  | 0 | 30 |  |       } | 
|  | 0 | 31 |  |     } | 
|  | 0 | 32 |  |   } | 
|  |  | 33 |  | } | 
|  |  | 34 |  |  | 
|  |  | 35 |  | public static class AutoTaskUpdateDtoExtensions | 
|  |  | 36 |  | { | 
|  |  | 37 |  |   public static AutoTaskUpdateBusinessModel ToBusinessModel(this AutoTaskUpdateDto model) | 
|  |  | 38 |  |   { | 
|  |  | 39 |  |     return new AutoTaskUpdateBusinessModel { | 
|  |  | 40 |  |       Name = model.Name, | 
|  |  | 41 |  |       AutoTaskDetails = model.AutoTaskDetails.Select(td => td.ToBusinessModel()), | 
|  |  | 42 |  |       Priority = model.Priority, | 
|  |  | 43 |  |       FlowId = model.FlowId, | 
|  |  | 44 |  |       AssignedRobotId = model.AssignedRobotId, | 
|  |  | 45 |  |     }; | 
|  |  | 46 |  |   } | 
|  |  | 47 |  | } |