Initial commit

This commit is contained in:
2026-04-23 21:38:24 -04:00
commit 63e12a9636
1762 changed files with 1672620 additions and 0 deletions
@@ -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");
}
}