using AutoMapper; using PARR.API.Authentication.Models; using PARR.API.Contracts.V1.Responses; using PARR.API.MappingProfiles.Resolvers; using PARR.BLL.Helpers; using PARR.DAL.DomainModels; using PARR.DAL.Models; namespace PARR.API.MappingProfiles { public class DomainToResponseProfile : Profile { public DomainToResponseProfile() { #region Template // --- Template --- CreateMap() .ForMember(d => d.Work, o => o.MapFrom(s => s.ApplicationsInWork!.Work)) .ForMember(d => d.Host, o => o.MapFrom(s => s.Host)) .ForMember(d => d.Process, o => o.MapFrom(s => s.ApplicationsInWork!.Work!.Tnk!.Subprocess!.Process)) .ForMember(d => d.Subprocess, o => o.MapFrom(s => s.ApplicationsInWork!.Work!.Tnk!.Subprocess)) .ForMember(d => d.Tnk, o => o.MapFrom(s => s.ApplicationsInWork!.Work!.Tnk)) .ForMember(d => d.ShortDescription, o => o.MapFrom(s => s.ApplicationsInWork!.ShortDescription)) .ForMember(d => d.FullDescription, o => o.MapFrom(s => s.ApplicationsInWork!.FullDescription)) .ForMember(d => d.Solution, o => o.MapFrom(s => s.ApplicationsInWork!.Solution)) .ForMember(d => d.TemplateDuration, o => o.MapFrom(s => s.ApplicationsInWork!.TemplateDuration)) .ForMember(d => d.Initiator, o => o.MapFrom()) .ForMember(d => d.ClosingCode, o => o.MapFrom()) .ForMember(d => d.Category, o => o.MapFrom()) .ForMember(d => d.SyncStatus, o => o.MapFrom(s => s.RobotConfigurations.OrderBy(t=>t.RobotCode))) .ForMember(d => d.Schedule, o => o.MapFrom()) .ForMember(d => d.Agent, o => o.MapFrom(s => s.ApplicationsInWork)) .ForMember(d => d.NextRun, o => o.MapFrom(s => s.ApplicationsInWork!.NextRun)) .ForMember(d => d.LastRun, o => o.MapFrom(s => s.ApplicationsInWork!.LastRun)); // === Template === #endregion CreateMap(); CreateMap() .ForMember(d => d.IsAgent, o => o.MapFrom(s => s.IsAgent)) .ForMember(d => d.Name, o => o.MapFrom(s => s.AgentName)) .ForMember(d => d.Script, o => o.MapFrom(s => s.AgentScript)) .ForMember(d => d.TimeOutSec, o => o.MapFrom(s => s.AgentTimeOutSec)); CreateMap(); CreateMap(); CreateMap(); CreateMap(); CreateMap(); CreateMap() .ForMember(t => t.Type, o => o.MapFrom(s => s.ApplicationType)); CreateMap(); #region Host // --- Host --- CreateMap() .Include() .Include() .ForMember(d => d.Status, o => o.MapFrom(s => s.EkStatus!.Name)) .ForMember(d => d.ResponseArea, o => o.MapFrom(s => s.ResponseArea!.Name)); CreateMap(); CreateMap() .ForMember(d => d.Applications, o => o.MapFrom(s => s.ApplicationsInHosts.Select(t => t.Application).OrderBy(t => t.Name))); // === Host === #endregion #region Robot CreateMap(); CreateMap(); CreateMap() .ForMember(d => d.Level, o => o.MapFrom(s => s.RobotHistoryLevel)) .ForMember(d => d.Date, o => o.MapFrom(s => s.DateCreated)) .ForMember(d => d.TaskId, o => o.MapFrom(s => s.RobotConfigurationId)) .ForMember(d => d.TaskStatus, o => o.MapFrom(s => s.StatusTask)) .ForMember(d => d.TemplateId, o => o.MapFrom(s => s.RobotConfiguration!.TemplateId)) .ForMember(d => d.TemplateName, o => o.MapFrom(s => s.RobotConfiguration!.Template!.Name)) .ForMember(d => d.Robot, o => o.MapFrom(s => s.RobotConfiguration!.Robot)); #endregion #region RobotConfiguration // --- RobotConfiguration --- CreateMap() .Include() .Include() .ForMember(d => d.TaskId, o => o.MapFrom(s => s.Id)); CreateMap() .ForMember(d => d.IsActive, o => o.MapFrom(s => s.Template!.IsActiveTemplate)) .ForMember(d => d.ClosingCode, o => o.MapFrom()) //todo .ForMember(d => d.FullDescription, o => o.MapFrom(s => s.Template!.ApplicationsInWork!.FullDescription)) .ForMember(d => d.ShortDescription, o => o.MapFrom(s => s.Template!.ApplicationsInWork!.ShortDescription)) .ForMember(d => d.Solution, o => o.MapFrom(s => s.Template!.ApplicationsInWork!.Solution)) .ForMember(d => d.ResponseArea, o => o.MapFrom(s => s.Template!.Host!.ResponseArea!.Name)) .ForMember(d => d.TemplateDuration, o => o.MapFrom(s => s.Template!.ApplicationsInWork!.TemplateDuration)) .ForMember(d => d.Initiator, o => o.MapFrom()) .ForMember(d => d.Category, o => o.MapFrom()) .ForMember(d => d.WorkGroup, o => o.MapFrom(s => s.Template!.Host!.WorkGroup)) .ForMember(d => d.Ek, o => o.MapFrom(s => s.Template!.Host!.Ek)) .ForMember(d => d.Name, o => o.MapFrom(s => s.Template!.Name)) .ForMember(d => d.ProcessName, o => o.MapFrom(s => s.Template!.ApplicationsInWork!.Work!.Tnk!.Subprocess!.Process!.Name)) .ForMember(d => d.ProcessEsppId, o => o.MapFrom(s => s.Template!.ApplicationsInWork!.Work!.Tnk!.Subprocess!.Process!.EsppId)) .ForMember(d => d.SubprocessName, o => o.MapFrom(s => s.Template!.ApplicationsInWork!.Work!.Tnk!.Subprocess!.Name)) .ForMember(d => d.SubprocessEsppId, o => o.MapFrom(s => s.Template!.ApplicationsInWork!.Work!.Tnk!.Subprocess!.EsppId)) .ForMember(d => d.TnkName, o => o.MapFrom(s => s.Template!.ApplicationsInWork!.Work!.Tnk!.Name)) .ForMember(d => d.TnkEsppId, o => o.MapFrom(s => s.Template!.ApplicationsInWork!.Work!.Tnk!.EsppId)) .ForMember(d => d.WorkName, o => o.MapFrom(s => s.Template!.ApplicationsInWork!.Work!.Name)) .ForMember(d => d.WorkEsppId, o => o.MapFrom(s => s.Template!.ApplicationsInWork!.Work!.EsppId)); CreateMap() .ForMember(d => d.EsppId, o => o.MapFrom(s => s.Template!.ScheduleEsppId)) .ForMember(d => d.ScheduleName, o => o.MapFrom(s => s.Template!.Name)) .ForMember(d => d.IsActive, o => o.MapFrom(s => s.Template!.IsActiveSchedule)) .ForMember(d => d.ResponseArea, o => o.MapFrom(s => s.Template!.Host!.ResponseArea!.Name)) .ForMember(d => d.TemplateName, o => o.MapFrom(s => s.Template!.Name)) .ForMember(d => d.TemplateId, o => o.MapFrom(s => s.Template!.Id)) .ForMember(d => d.WorkGroup, o => o.MapFrom(s => s.Template!.Host!.WorkGroup)) .ForMember(d => d.Exclude, o => o.MapFrom()) .ForMember(d => d.Timezone, o => o.MapFrom()) .ForMember(d => d.RepeatRange, o => o.MapFrom()) //.ForMember(d => d.GenerationTime, o => o.MapFrom(s => s.Template!.ApplicationsInWork!.ScheduleGenerationTime)) .ForMember(d => d.GenerationTime, o => o.MapFrom(s => EsppScheduleHelpers.GetGenerationTime(s.Template!.ApplicationsInWork!.NextRun))) .ForMember(d => d.NextStart, o => o.MapFrom(s => EsppScheduleHelpers.GetNextRun(s.Template!.ApplicationsInWork!.NextRun))) //.ForMember(d => d.NextStart, o => o.MapFrom(s => EsppScheduleHelpers.GetFirstStart(s.Template!.ApplicationsInWork!.ScheduleStartDate, s.Template!.ApplicationsInWork!.ScheduleGenerationTime))) //.ForMember(d => d.NextStart, o => o.MapFrom(s => EsppScheduleHelpers.GetNextScheduleStart(s.Template!.NextScheduleStart))) .ForMember(d => d.ScheduleType, o => o.MapFrom(s => s.Template!.ApplicationsInWork!.EsppSchValues!.First()!.EsppSchTypeConfig!.EsppSchTypeSchedule!.Description)) .ForMember(d => d.ScheduleTypeCode, o => o.MapFrom(s => s.Template!.ApplicationsInWork!.EsppSchValues!.First()!.EsppSchTypeConfig!.EsppSchTypeSchedule!.Id)) .ForMember(d => d.Schedule, o => o.MapFrom()); // === RobotConfiguration === #endregion CreateMap(); CreateMap(); CreateMap() .ForMember(d => d.Robot, o => o.MapFrom(s => s.Robot)) .ForMember(d => d.TaskStatus, o => o.MapFrom(s => s.TaskStatus)) .ForMember(d => d.RobotStatus, o => o.MapFrom(s => s.RobotStatus)); // --- EsppSch --- CreateMap(); CreateMap(); CreateMap(); CreateMap() .ForMember(d => d.Order, o => o.MapFrom(s => s.Order)) .ForMember(d => d.Value, o => o.MapFrom(s => s.Value)) .ForMember(d => d.Type, o => o.MapFrom(s => s.Type)); // === EsppSch === CreateMap(); CreateMap() .ForMember(t => t.Date, o => o.MapFrom(s => s.DateCreated)) .ForMember(t => t.Level, o => o.MapFrom(s => s.AgentHistoryLevel)) .ForMember(t => t.TemplateName, o => o.MapFrom(s => s.Template!.Name)); #region User CreateMap() .ForMember(t => t.Roles, o => o.MapFrom(s => s.Roles.Select(t => t.Role).OrderBy(t => t!.Description))); CreateMap(); CreateMap(); #endregion #region Order CreateMap(); CreateMap() .Include() .Include(); CreateMap() .ForMember(s => s.Status, o => o.MapFrom(s => s.OrderStatus)) .ForMember(s => s.NextStatus, o => o.MapFrom(s => s.NextStatus)); CreateMap(); #endregion } } }