Files
parr_api/PARR.API/MappingProfiles/DomainToResponseProfile.cs

138 lines
8.1 KiB
C#

using AutoMapper;
using PARR.API.Contracts.V1.Responses;
using PARR.API.MappingProfiles.Resolvers;
using PARR.DAL.Models;
using PARR.DAL.Models.V1;
namespace PARR.API.MappingProfiles
{
public class DomainToResponseProfile : Profile
{
public DomainToResponseProfile()
{
// --- Job ---
CreateMap<V1_Job, JobBaseResponse>()
.Include<V1_Job, JobGetAllResponse>()
.ForMember(d => d.FrequencyMinute, o => o.MapFrom(s => s.Frequency))
.ForMember(d => d.Script, o => o.MapFrom(s => s.ScriptName));
CreateMap<V1_Job, JobGetAllResponse>();
CreateMap<List<V1_Job>, JobMinResponse>()
.ForMember(d => d.Scheduled, o => o.MapFrom(s => s));
CreateMap<V1_Job, JobMinScheduleResponse>()
.ForMember(d => d.Script, o => o.MapFrom(s => s.ScriptName));
// === Job ===
CreateMap<V1_JobMode, JobModeResponse>();
// --- Template ---
CreateMap<Template, TemplateResponse>()
.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<TemplateInitiatorResolver>())
.ForMember(d => d.ClosingCode, o => o.MapFrom<TemplateClosingCodeResolver>())
.ForMember(d => d.Category, o => o.MapFrom<TemplateCategoryResolver>());
CreateMap<TemplateResponse, TemplateStringResponse>()
.ForMember(d => d.Assignment, o => o.MapFrom(s => s.Host!.WorkGroup))
.ForMember(d => d.Title, o => o.MapFrom(s => s.ShortDescription))
.ForMember(d => d.Branch, o => o.MapFrom(s => s.Host!.ResponseArea))
.ForMember(d => d.SlaInterval, o => o.MapFrom(s => s.TemplateDuration))
.ForMember(d => d.ConfigurationItem, o => o.MapFrom(s => s.Host!.Ek))
.ForMember(d => d.ContactName, o => o.MapFrom(s => s.Initiator))
.ForMember(d => d.Description, o => o.MapFrom(s => s.FullDescription))
.ForMember(d => d.ResolutionCode, o => o.MapFrom(s => s.ClosingCode))
.ForMember(d => d.Resolution, o => o.MapFrom(s => s.Solution))
.ForMember(d => d.RzdMTNKprocess, o => o.MapFrom(s => s.Process!.Name))
.ForMember(d => d.RzdMTNKprocessId, o => o.MapFrom(s => s.Process!.EsppId))
.ForMember(d => d.RzdMTNKsubprocess, o => o.MapFrom(s => s.Subprocess!.Name))
.ForMember(d => d.RzdMTNKsubprocessId, o => o.MapFrom(s => s.Subprocess!.EsppId))
.ForMember(d => d.RzdMTNKtnk, o => o.MapFrom(s => s.Tnk!.Name))
.ForMember(d => d.RzdMTNKtnkId, o => o.MapFrom(s => s.Tnk!.EsppId))
.ForMember(d => d.RzdMTNKjob, o => o.MapFrom(s => s.Work!.Name))
.ForMember(d => d.RzdMTNKjobId, o => o.MapFrom(s => s.Work!.EsppId));
// === Template ===
CreateMap<DAL.Models.TaskStatus, StatusTemplateResponse>();
CreateMap<Template, TemplateRobotStatusResponse>()
.ForMember(d => d.Code, o => o.MapFrom(s => s.RobotStatus!.Code))
.ForMember(d => d.Name, o => o.MapFrom(s => s.RobotStatus!.Name))
.ForMember(d => d.Description, o => o.MapFrom(s => s.RobotStatus!.Description));
CreateMap<Process, ProcessResponse>();
CreateMap<Subprocess, SubprocessResponse>();
CreateMap<Tnk, TnkResponse>();
CreateMap<Work, WorkResponse>();
CreateMap<Application, ApplicationResponse>();
CreateMap<DAL.Models.Host, HostResponse>()
.ForMember(d => d.Status, o => o.MapFrom(s => s.EkStatus!.Name))
.ForMember(d => d.ResponseArea, o => o.MapFrom(s => s.ResponseArea!.Name));
CreateMap<RobotStatus, RobotStatusResponse>();
CreateMap<RobotHistoryLevel, RobotHistoryLevelResponse>();
CreateMap<RobotHistory, RobotHistoryResponse>()
.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));
// --- RobotConfiguration ---
CreateMap<RobotConfiguration, RobotTaskTemplateResponse>()
.ForMember(d => d.IsActive, o => o.MapFrom(s => s.Template!.IsActiveTemplate))
.ForMember(d => d.ClosingCode, o => o.MapFrom<RobotTaskTemplateClosingCodeResolver>())
.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<RobotTaskTemplateInitiatorResolver>())
.ForMember(d => d.Category, o => o.MapFrom<RobotTaskTemplateCategoryResolver>())
.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))
.ForMember(d => d.TaskId, o => o.MapFrom(s => s.Id));
//TODO: сделать маппинг!!!
CreateMap<RobotConfiguration, RobotTaskScheduleResponse>()
.ForMember(d => d.TaskId, o => o.MapFrom(s => s.Id));
// === RobotConfiguration ===
CreateMap<Robot, RobotResponse>();
CreateMap<DAL.Models.TaskStatus, TaskStatusResponse>();
CreateMap<RobotConfiguration, RobotConfigurationResponse>()
.ForMember(d => d.Robot, o => o.MapFrom(s => s.Robot))
.ForMember(d => d.TaskStatus, o => o.MapFrom(s => s.StatusTask))
.ForMember(d => d.RobotStatus, o => o.MapFrom(s => s.RobotStatus));
}
}
}