457 lines
20 KiB
C#
457 lines
20 KiB
C#
using AutoMapper;
|
|
using Marco.Pms.Model.AppMenu;
|
|
using Marco.Pms.Model.Directory;
|
|
using Marco.Pms.Model.DocumentManager;
|
|
using Marco.Pms.Model.Dtos.Activities;
|
|
using Marco.Pms.Model.Dtos.AppMenu;
|
|
using Marco.Pms.Model.Dtos.Directory;
|
|
using Marco.Pms.Model.Dtos.DocumentManager;
|
|
using Marco.Pms.Model.Dtos.Employees;
|
|
using Marco.Pms.Model.Dtos.Expenses;
|
|
using Marco.Pms.Model.Dtos.Master;
|
|
using Marco.Pms.Model.Dtos.Organization;
|
|
using Marco.Pms.Model.Dtos.Project;
|
|
using Marco.Pms.Model.Dtos.Tenant;
|
|
using Marco.Pms.Model.Employees;
|
|
using Marco.Pms.Model.Entitlements;
|
|
using Marco.Pms.Model.Expenses;
|
|
using Marco.Pms.Model.Master;
|
|
using Marco.Pms.Model.MongoDBModels;
|
|
using Marco.Pms.Model.MongoDBModels.Employees;
|
|
using Marco.Pms.Model.MongoDBModels.Expenses;
|
|
using Marco.Pms.Model.MongoDBModels.Masters;
|
|
using Marco.Pms.Model.MongoDBModels.Project;
|
|
using Marco.Pms.Model.OrganizationModel;
|
|
using Marco.Pms.Model.Projects;
|
|
using Marco.Pms.Model.TenantModels;
|
|
using Marco.Pms.Model.TenantModels.MongoDBModel;
|
|
using Marco.Pms.Model.ViewModels.Activities;
|
|
using Marco.Pms.Model.ViewModels.Directory;
|
|
using Marco.Pms.Model.ViewModels.DocumentManager;
|
|
using Marco.Pms.Model.ViewModels.Employee;
|
|
using Marco.Pms.Model.ViewModels.Expanses;
|
|
using Marco.Pms.Model.ViewModels.Expenses;
|
|
using Marco.Pms.Model.ViewModels.Master;
|
|
using Marco.Pms.Model.ViewModels.Organization;
|
|
using Marco.Pms.Model.ViewModels.Projects;
|
|
using Marco.Pms.Model.ViewModels.Tenant;
|
|
|
|
namespace Marco.Pms.Services.MappingProfiles
|
|
{
|
|
public class MappingProfile : Profile
|
|
{
|
|
public MappingProfile()
|
|
{
|
|
#region ======================================================= Organization =======================================================
|
|
|
|
CreateMap<CreateOrganizationDto, Organization>();
|
|
CreateMap<Organization, OrganizationVM>();
|
|
CreateMap<Organization, BasicOrganizationVm>();
|
|
|
|
#endregion
|
|
|
|
#region ======================================================= Tenant =======================================================
|
|
CreateMap<Tenant, TenantVM>();
|
|
CreateMap<Tenant, TenantListVM>();
|
|
CreateMap<Tenant, TenantDetailsVM>();
|
|
|
|
CreateMap<CreateTenantDto, Tenant>()
|
|
.ForMember(
|
|
dest => dest.ContactName,
|
|
opt => opt.MapFrom(src => $"{src.FirstName} {src.LastName}")
|
|
)
|
|
.ForMember(
|
|
dest => dest.Name,
|
|
opt => opt.MapFrom(src => src.OrganizationName)
|
|
);
|
|
CreateMap<UpdateTenantDto, Tenant>()
|
|
.ForMember(
|
|
dest => dest.ContactName,
|
|
opt => opt.MapFrom(src => $"{src.FirstName} {src.LastName}")
|
|
);
|
|
|
|
CreateMap<SubscriptionPlanDetails, SubscriptionPlanVM>()
|
|
.ForMember(
|
|
dest => dest.PlanName,
|
|
opt => opt.MapFrom(src => src.Plan != null ? src.Plan.PlanName : "")
|
|
)
|
|
.ForMember(
|
|
dest => dest.Description,
|
|
opt => opt.MapFrom(src => src.Plan != null ? src.Plan.Description : "")
|
|
);
|
|
CreateMap<TenantSubscriptions, SubscriptionPlanDetailsVM>()
|
|
.ForMember(
|
|
dest => dest.PlanName,
|
|
opt => opt.MapFrom(src => src.Plan!.Plan != null ? src.Plan.Plan.PlanName : "")
|
|
)
|
|
.ForMember(
|
|
dest => dest.Description,
|
|
opt => opt.MapFrom(src => src.Plan!.Plan != null ? src.Plan.Plan.Description : "")
|
|
)
|
|
.ForMember(
|
|
dest => dest.Price,
|
|
opt => opt.MapFrom(src => src.Plan != null ? src.Plan.Price : 0)
|
|
)
|
|
.ForMember(
|
|
dest => dest.Frequency,
|
|
opt => opt.MapFrom(src => src.Plan != null ? src.Plan.Frequency : PLAN_FREQUENCY.MONTHLY)
|
|
);
|
|
CreateMap<SubscriptionPlanDetailsDto, SubscriptionPlanDetails>();
|
|
CreateMap<SubscriptionPlanDto, SubscriptionPlan>();
|
|
|
|
CreateMap<FeatureDetailsDto, FeatureDetails>();
|
|
CreateMap<SubscriptionCheckListDto, SubscriptionCheckList>();
|
|
CreateMap<SupportDetailsDto, SupportDetails>();
|
|
CreateMap<ReportDetailsDto, ReportDetails>();
|
|
CreateMap<ModulesDetailsDto, ModulesDetails>();
|
|
CreateMap<ProjectManagementDetailsDto, ProjectManagementDetails>();
|
|
CreateMap<AttendanceDetailsDto, AttendanceDetails>();
|
|
CreateMap<DirectoryDetailsDto, DirectoryDetails>();
|
|
CreateMap<ExpenseModuleDetailsDto, ExpenseModuleDetails>();
|
|
|
|
#endregion
|
|
|
|
#region ======================================================= Projects =======================================================
|
|
// Your mappings
|
|
CreateMap<Project, ProjectVM>();
|
|
CreateMap<Project, ProjectInfoVM>();
|
|
CreateMap<Project, BasicProjectVM>();
|
|
CreateMap<ProjectMongoDB, ProjectInfoVM>();
|
|
CreateMap<UpdateProjectDto, Project>();
|
|
CreateMap<Project, ProjectListVM>();
|
|
CreateMap<Project, ProjectDto>();
|
|
CreateMap<ProjectMongoDB, ProjectListVM>();
|
|
CreateMap<ProjectMongoDB, ProjectVM>()
|
|
.ForMember(
|
|
dest => dest.Id,
|
|
// Explicitly and safely convert string Id to Guid Id
|
|
opt => opt.MapFrom(src => new Guid(src.Id))
|
|
);
|
|
|
|
CreateMap<Project, ProjectBasicMongoDB>()
|
|
.ForMember(
|
|
dest => dest.Id,
|
|
// Explicitly and safely convert Guid Id to string Id
|
|
opt => opt.MapFrom(src => src.Id.ToString()))
|
|
.ForMember(
|
|
dest => dest.TenantId,
|
|
opt => opt.MapFrom(src => src.TenantId.ToString()));
|
|
CreateMap<ProjectBasicMongoDB, ProjectInfoVM>()
|
|
.ForMember(
|
|
dest => dest.Id,
|
|
opt => opt.MapFrom(src => new Guid(src.Id)))
|
|
.ForMember(
|
|
dest => dest.ProjectStatusId,
|
|
opt => opt.MapFrom(src => Guid.Empty)
|
|
);
|
|
|
|
CreateMap<ProjectMongoDB, Project>()
|
|
.ForMember(
|
|
dest => dest.Id,
|
|
// Explicitly and safely convert string Id to Guid Id
|
|
opt => opt.MapFrom(src => new Guid(src.Id))
|
|
).ForMember(
|
|
dest => dest.ProjectStatusId,
|
|
// Explicitly and safely convert string ProjectStatusId to Guid ProjectStatusId
|
|
opt => opt.MapFrom(src => src.ProjectStatus == null ? Guid.Empty : new Guid(src.ProjectStatus.Id))
|
|
);
|
|
|
|
CreateMap<StatusMasterMongoDB, StatusMaster>();
|
|
CreateMap<ProjectVM, Project>();
|
|
CreateMap<CreateProjectDto, Project>();
|
|
CreateMap<ProjectAllocationDot, ProjectAllocation>()
|
|
.ForMember(
|
|
dest => dest.EmployeeId,
|
|
opt => opt.MapFrom(src => src.EmployeeId));
|
|
CreateMap<ProjectsAllocationDto, ProjectAllocation>();
|
|
CreateMap<ProjectAllocation, ProjectAllocationVM>();
|
|
|
|
CreateMap<BuildingDto, Building>();
|
|
CreateMap<FloorDto, Floor>();
|
|
CreateMap<WorkAreaDto, WorkArea>();
|
|
CreateMap<WorkItemDto, WorkItem>()
|
|
.ForMember(
|
|
dest => dest.Description,
|
|
opt => opt.MapFrom(src => src.Comment));
|
|
#endregion
|
|
|
|
#region ======================================================= Employee =======================================================
|
|
|
|
CreateMap<Employee, EmployeeVM>()
|
|
.ForMember(
|
|
dest => dest.JobRole,
|
|
opt => opt.MapFrom(src => src.JobRole != null ? src.JobRole.Name : ""));
|
|
CreateMap<CreateUserDto, Employee>();
|
|
CreateMap<MobileUserManageDto, Employee>();
|
|
|
|
CreateMap<Employee, BasicEmployeeVM>()
|
|
.ForMember(
|
|
dest => dest.JobRoleName,
|
|
opt => opt.MapFrom(src => src.JobRole != null ? src.JobRole.Name : ""));
|
|
|
|
CreateMap<Employee, BasicEmployeeMongoDB>()
|
|
.ForMember(
|
|
dest => dest.Id,
|
|
opt => opt.MapFrom(src => src.Id.ToString()))
|
|
.ForMember(
|
|
dest => dest.JobRoleName,
|
|
opt => opt.MapFrom(src => src.JobRole != null ? src.JobRole.Name : ""))
|
|
.ForMember(
|
|
dest => dest.JobRoleId,
|
|
opt => opt.MapFrom(src => src.JobRoleId.ToString()))
|
|
.ForMember(
|
|
dest => dest.TenantId,
|
|
opt => opt.MapFrom(src => src.TenantId.ToString()));
|
|
CreateMap<BasicEmployeeMongoDB, BasicEmployeeVM>()
|
|
.ForMember(
|
|
dest => dest.Id,
|
|
opt => opt.MapFrom(src => string.IsNullOrWhiteSpace(src.Id) ? Guid.Empty : Guid.Parse(src.Id)))
|
|
.ForMember(
|
|
dest => dest.JobRoleId,
|
|
opt => opt.MapFrom(src => Guid.Parse(src.JobRoleId ?? "")));
|
|
#endregion
|
|
|
|
#region ======================================================= Expenses =======================================================
|
|
|
|
CreateMap<Expenses, ExpenseList>();
|
|
CreateMap<CreateExpensesDto, Expenses>();
|
|
CreateMap<UpdateExpensesDto, Expenses>();
|
|
CreateMap<ExpenseLog, ExpenseLogVM>();
|
|
|
|
CreateMap<ExpensesReimburse, ExpensesReimburseVM>();
|
|
CreateMap<Expenses, ExpenseDetailsMongoDB>()
|
|
.ForMember(
|
|
dest => dest.Id,
|
|
opt => opt.MapFrom(src => src.Id.ToString()))
|
|
.ForMember(
|
|
dest => dest.TenantId,
|
|
opt => opt.MapFrom(src => src.TenantId.ToString()));
|
|
|
|
CreateMap<ExpenseDetailsMongoDB, Expenses>()
|
|
.ForMember(
|
|
dest => dest.Id,
|
|
opt => opt.MapFrom(src => Guid.Parse(src.Id)))
|
|
.ForMember(
|
|
dest => dest.TenantId,
|
|
opt => opt.MapFrom(src => Guid.Parse(src.TenantId)));
|
|
|
|
CreateMap<ExpenseDetailsMongoDB, ExpenseList>()
|
|
.ForMember(
|
|
dest => dest.Id,
|
|
opt => opt.MapFrom(src => Guid.Parse(src.Id)));
|
|
|
|
CreateMap<ExpenseDetailsMongoDB, ExpenseDetailsVM>()
|
|
.ForMember(
|
|
dest => dest.Id,
|
|
opt => opt.MapFrom(src => Guid.Parse(src.Id)));
|
|
|
|
#endregion
|
|
|
|
#region ======================================================= Master =======================================================
|
|
|
|
CreateMap<FeaturePermission, FeaturePermissionVM>();
|
|
|
|
#region ======================================================= Global Service Master =======================================================
|
|
|
|
CreateMap<ServiceMasterDto, GlobalServiceMaster>()
|
|
.ForMember(
|
|
dest => dest.Id,
|
|
// Explicitly and safely convert nullable Guid to non-nullable Guid
|
|
opt => opt.MapFrom(src => src.Id ?? Guid.Empty)
|
|
);
|
|
|
|
#endregion
|
|
|
|
#region ======================================================= Service Master =======================================================
|
|
|
|
CreateMap<ServiceMasterDto, ServiceMaster>()
|
|
.ForMember(
|
|
dest => dest.Id,
|
|
// Explicitly and safely convert nullable Guid to non-nullable Guid
|
|
opt => opt.MapFrom(src => src.Id ?? Guid.Empty)
|
|
);
|
|
CreateMap<ServiceMaster, ServiceMasterVM>();
|
|
|
|
#endregion
|
|
|
|
#region ======================================================= Activity Group Master =======================================================
|
|
|
|
CreateMap<ActivityGroupDto, ActivityGroupMaster>()
|
|
.ForMember(
|
|
dest => dest.Id,
|
|
// Explicitly and safely convert nullable Guid to non-nullable Guid
|
|
opt => opt.MapFrom(src => src.Id ?? Guid.Empty)
|
|
);
|
|
CreateMap<ActivityGroupMaster, ActivityGroupMasterVM>();
|
|
|
|
#endregion
|
|
|
|
#region ======================================================= Activity Master =======================================================
|
|
|
|
CreateMap<CreateActivityMasterDto, ActivityMaster>();
|
|
CreateMap<CreateCheckListDto, ActivityCheckList>()
|
|
.ForMember(
|
|
dest => dest.Id,
|
|
// Explicitly and safely convert nullable Guid to non-nullable Guid
|
|
opt => opt.MapFrom(src => src.Id ?? Guid.Empty)
|
|
);
|
|
CreateMap<ActivityCheckList, CheckListVM>();
|
|
CreateMap<ActivityMaster, ActivityVM>();
|
|
|
|
#endregion
|
|
|
|
#region ======================================================= Expenses Type Master =======================================================
|
|
|
|
CreateMap<ExpensesTypeMasterDto, ExpensesTypeMaster>()
|
|
.ForMember(
|
|
dest => dest.Id,
|
|
// Explicitly and safely convert nullable Guid to non-nullable Guid
|
|
opt => opt.MapFrom(src => src.Id ?? Guid.Empty)
|
|
);
|
|
CreateMap<ExpensesTypeMaster, ExpensesTypeMasterVM>();
|
|
|
|
CreateMap<ExpensesTypeMaster, ExpensesTypeMasterMongoDB>()
|
|
.ForMember(
|
|
dest => dest.Id,
|
|
opt => opt.MapFrom(src => src.Id.ToString()))
|
|
.ForMember(
|
|
dest => dest.TenantId,
|
|
opt => opt.MapFrom(src => src.TenantId.ToString()));
|
|
|
|
CreateMap<ExpensesTypeMasterMongoDB, ExpensesTypeMasterVM>()
|
|
.ForMember(
|
|
dest => dest.Id,
|
|
opt => opt.MapFrom(src => Guid.Parse(src.Id)));
|
|
#endregion
|
|
|
|
#region ======================================================= Expenses Status Master =======================================================
|
|
|
|
CreateMap<ExpensesStatusMasterDto, ExpensesStatusMaster>()
|
|
.ForMember(
|
|
dest => dest.Id,
|
|
opt => opt.MapFrom(src => src.Id ?? Guid.Empty))
|
|
.ForMember(
|
|
dest => dest.DisplayName,
|
|
opt => opt.MapFrom(src => string.IsNullOrWhiteSpace(src.DisplayName) ? src.Name : src.DisplayName));
|
|
CreateMap<ExpensesStatusMaster, ExpensesStatusMasterVM>();
|
|
|
|
CreateMap<ExpensesStatusMaster, ExpensesStatusMasterMongoDB>()
|
|
.ForMember(
|
|
dest => dest.Id,
|
|
opt => opt.MapFrom(src => src.Id.ToString()));
|
|
|
|
CreateMap<ExpensesStatusMasterMongoDB, ExpensesStatusMasterVM>()
|
|
.ForMember(
|
|
dest => dest.Id,
|
|
opt => opt.MapFrom(src => Guid.Parse(src.Id)));
|
|
#endregion
|
|
|
|
#region ======================================================= Payment Mode Matser =======================================================
|
|
|
|
CreateMap<PaymentModeMatserDto, PaymentModeMatser>()
|
|
.ForMember(
|
|
dest => dest.Id,
|
|
// Explicitly and safely convert nullable Guid to non-nullable Guid
|
|
opt => opt.MapFrom(src => src.Id ?? Guid.Empty)
|
|
);
|
|
CreateMap<PaymentModeMatser, PaymentModeMatserVM>();
|
|
|
|
CreateMap<PaymentModeMatser, PaymentModeMatserMongoDB>()
|
|
.ForMember(
|
|
dest => dest.Id,
|
|
opt => opt.MapFrom(src => src.Id.ToString()))
|
|
.ForMember(
|
|
dest => dest.TenantId,
|
|
opt => opt.MapFrom(src => src.TenantId.ToString()));
|
|
|
|
CreateMap<PaymentModeMatserMongoDB, PaymentModeMatserVM>()
|
|
.ForMember(
|
|
dest => dest.Id,
|
|
opt => opt.MapFrom(src => Guid.Parse(src.Id)));
|
|
|
|
#endregion
|
|
|
|
#endregion
|
|
|
|
#region ======================================================= Document =======================================================
|
|
|
|
CreateMap<DocumentMongoDB, BasicDocumentVM>()
|
|
.ForMember(
|
|
dest => dest.DocumentId,
|
|
opt => opt.MapFrom(src => Guid.Parse(src.DocumentId)));
|
|
|
|
CreateMap<DocumentAttachmentDto, DocumentAttachment>();
|
|
CreateMap<DocumentAttachment, DocumentListVM>();
|
|
CreateMap<DocumentAttachment, AttachmentVersionVM>();
|
|
CreateMap<DocumentAttachment, DocumentAttachmentDetailsVM>();
|
|
|
|
CreateMap<DocumentCategoryMaster, DocumentCategoryVM>();
|
|
CreateMap<CreateDocumentCategoryDto, DocumentCategoryMaster>();
|
|
|
|
CreateMap<DocumentTypeMaster, DocumentTypeVM>();
|
|
CreateMap<CreateDocumentTypeDto, DocumentTypeMaster>();
|
|
|
|
#endregion
|
|
|
|
#region ======================================================= AppMenu =======================================================
|
|
CreateMap<CreateMenuSectionDto, MenuSection>();
|
|
CreateMap<UpdateMenuSectionDto, MenuSection>();
|
|
CreateMap<MenuSection, MenuSectionVM>()
|
|
.ForMember(
|
|
dest => dest.Name,
|
|
opt => opt.MapFrom(src => src.Title));
|
|
|
|
CreateMap<CreateMenuItemDto, MenuItem>();
|
|
CreateMap<UpdateMenuItemDto, MenuItem>();
|
|
CreateMap<MenuItem, MenuItemVM>()
|
|
.ForMember(
|
|
dest => dest.Name,
|
|
opt => opt.MapFrom(src => src.Text));
|
|
|
|
CreateMap<CreateSubMenuItemDto, SubMenuItem>();
|
|
CreateMap<UpdateSubMenuItemDto, SubMenuItem>();
|
|
CreateMap<SubMenuItem, SubMenuItemVM>()
|
|
.ForMember(
|
|
dest => dest.Name,
|
|
opt => opt.MapFrom(src => src.Text));
|
|
#endregion
|
|
|
|
#region ======================================================= Directory =======================================================
|
|
|
|
CreateMap<Contact, ContactVM>();
|
|
CreateMap<CreateContactDto, Contact>();
|
|
CreateMap<UpdateContactDto, Contact>();
|
|
CreateMap<Contact, ContactProfileVM>();
|
|
|
|
|
|
CreateMap<ContactPhone, ContactPhoneVM>();
|
|
CreateMap<CreateContactPhoneDto, ContactPhone>();
|
|
CreateMap<UpdateContactPhoneDto, ContactPhone>();
|
|
|
|
CreateMap<ContactEmail, ContactEmailVM>();
|
|
CreateMap<CreateContactEmailDto, ContactEmail>();
|
|
CreateMap<UpdateContactEmailDto, ContactEmail>();
|
|
|
|
CreateMap<ContactCategoryMaster, ContactCategoryVM>();
|
|
|
|
CreateMap<ContactTagMaster, ContactTagVM>();
|
|
|
|
CreateMap<Bucket, BucketVM>();
|
|
CreateMap<Bucket, AssignBucketVM>();
|
|
|
|
CreateMap<ContactNote, ContactNoteVM>()
|
|
.ForMember(
|
|
dest => dest.ContactName,
|
|
opt => opt.MapFrom(src => src.Contact != null ? src.Contact.Name : string.Empty)
|
|
)
|
|
.ForMember(
|
|
dest => dest.OrganizationName,
|
|
opt => opt.MapFrom(src => src.Contact != null ? src.Contact.Organization : string.Empty)
|
|
);
|
|
CreateMap<CreateContactNoteDto, ContactNote>();
|
|
CreateMap<UpdateContactNoteDto, ContactNote>();
|
|
|
|
#endregion
|
|
}
|
|
}
|
|
} |