Initial commit
This commit is contained in:
@@ -0,0 +1,79 @@
|
||||
using AutoMapper;
|
||||
using PowderCoating.Core.Entities;
|
||||
using PowderCoating.Core.Enums;
|
||||
using PowderCoating.Application.DTOs.Maintenance;
|
||||
|
||||
namespace PowderCoating.Application.Mappings;
|
||||
|
||||
public class MaintenanceProfile : Profile
|
||||
{
|
||||
public MaintenanceProfile()
|
||||
{
|
||||
// MaintenanceRecord to MaintenanceRecordDto
|
||||
CreateMap<MaintenanceRecord, MaintenanceRecordDto>()
|
||||
.ForMember(dest => dest.EquipmentName,
|
||||
opt => opt.MapFrom(src => src.Equipment.EquipmentName))
|
||||
.ForMember(dest => dest.Status,
|
||||
opt => opt.MapFrom(src => src.Status.ToString()))
|
||||
.ForMember(dest => dest.StatusDisplay,
|
||||
opt => opt.MapFrom(src => FormatEnumName(src.Status.ToString())))
|
||||
.ForMember(dest => dest.Priority,
|
||||
opt => opt.MapFrom(src => src.Priority.ToString()))
|
||||
.ForMember(dest => dest.PriorityDisplay,
|
||||
opt => opt.MapFrom(src => src.Priority.ToString()))
|
||||
.ForMember(dest => dest.PerformedByName,
|
||||
opt => opt.MapFrom(src => src.PerformedBy != null ? src.PerformedBy.FullName : null))
|
||||
.ForMember(dest => dest.AssignedWorkerName,
|
||||
opt => opt.MapFrom(src => src.AssignedUser != null ? src.AssignedUser.FullName : null))
|
||||
.ForMember(dest => dest.RecurrenceFrequency,
|
||||
opt => opt.MapFrom(src => src.RecurrenceFrequency.HasValue
|
||||
? FormatEnumName(src.RecurrenceFrequency.Value.ToString())
|
||||
: null));
|
||||
|
||||
// CreateMaintenanceDto to MaintenanceRecord
|
||||
CreateMap<CreateMaintenanceDto, MaintenanceRecord>()
|
||||
.ForMember(dest => dest.Status,
|
||||
opt => opt.MapFrom(src => Enum.Parse<MaintenanceStatus>(src.Status)))
|
||||
.ForMember(dest => dest.Priority,
|
||||
opt => opt.MapFrom(src => Enum.Parse<MaintenancePriority>(src.Priority)))
|
||||
.ForMember(dest => dest.TotalCost,
|
||||
opt => opt.MapFrom(src => src.LaborCost + src.PartsCost));
|
||||
|
||||
// UpdateMaintenanceDto to MaintenanceRecord
|
||||
CreateMap<UpdateMaintenanceDto, MaintenanceRecord>()
|
||||
.ForMember(dest => dest.Status,
|
||||
opt => opt.MapFrom(src => Enum.Parse<MaintenanceStatus>(src.Status)))
|
||||
.ForMember(dest => dest.Priority,
|
||||
opt => opt.MapFrom(src => Enum.Parse<MaintenancePriority>(src.Priority)))
|
||||
.ForMember(dest => dest.TotalCost,
|
||||
opt => opt.MapFrom(src => src.LaborCost + src.PartsCost));
|
||||
|
||||
// MaintenanceRecord to UpdateMaintenanceDto (needed for Edit GET action)
|
||||
CreateMap<MaintenanceRecord, UpdateMaintenanceDto>()
|
||||
.ForMember(dest => dest.Status,
|
||||
opt => opt.MapFrom(src => src.Status.ToString()))
|
||||
.ForMember(dest => dest.Priority,
|
||||
opt => opt.MapFrom(src => src.Priority.ToString()));
|
||||
// RecurrenceFrequency, IsRecurring, RecurrenceEndDate map automatically (same type)
|
||||
|
||||
// MaintenanceRecord to MaintenanceListDto
|
||||
CreateMap<MaintenanceRecord, MaintenanceListDto>()
|
||||
.ForMember(dest => dest.EquipmentName,
|
||||
opt => opt.MapFrom(src => src.Equipment.EquipmentName))
|
||||
.ForMember(dest => dest.Status,
|
||||
opt => opt.MapFrom(src => src.Status.ToString()))
|
||||
.ForMember(dest => dest.StatusDisplay,
|
||||
opt => opt.MapFrom(src => FormatEnumName(src.Status.ToString())))
|
||||
.ForMember(dest => dest.Priority,
|
||||
opt => opt.MapFrom(src => src.Priority.ToString()))
|
||||
.ForMember(dest => dest.PriorityDisplay,
|
||||
opt => opt.MapFrom(src => src.Priority.ToString()));
|
||||
// IsRecurring and RecurrenceGroupId map automatically
|
||||
}
|
||||
|
||||
private static string FormatEnumName(string enumName)
|
||||
{
|
||||
// Convert "InProgress" to "In Progress"
|
||||
return System.Text.RegularExpressions.Regex.Replace(enumName, "([a-z])([A-Z])", "$1 $2");
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user