| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109 |
- using System;
- using System.Linq;
- using BO.AppServer.Data.Entity;
- using BO.AppServer.Metadata.Dto;
- using BO.AppServer.Metadata.Enums;
- using Quadarax.Foundation.Core.Data.Interface.Entity;
- using Quadarax.Foundation.Core.Mapper;
- namespace BO.AppServer.Business.Mapper
- {
- public class MapperLong : Quadarax.Foundation.Core.Data.Mapper.Mapper<MapperLong>
- {
- public MapperLong()
- {
- //TODO: make automatic
- DefineBiDirection<User,UserRDto>();
- DefineBiDirection<User,UserCDto>();
- DefineBiDirection<User,UserUDto>();
- DefineBiDirection<BillingPlan,BillingPlanRDto>();
- DefineBiDirection<BillingPlan,BillingPlanCDto>();
- DefineBiDirection<BillingPlan,BillingPlanUDto>();
- DefineBiDirection<MimeType,MimeTypeRDto>();
- DefineBiDirection<MimeType,MimeTypeCDto>();
- DefineBiDirection<MimeType,MimeTypeUDto>();
- DefineBiDirection<Statistic,StatisticsDto>();
- Define<Workspace, WorkspaceRDto>(builder =>
- {
- builder.Custom(dest => dest.Structures, src => src.Structures.MapList<Structure, StructureRDto>());
- builder.Custom(dest => dest.Audit, src => new BoAuditDto()
- {
- Created = src.Created,
- Changed = src.Modified,
- CreatedBy = src.CreatedByUser.Name,
- ChangedBy = src.ModifiedByUser != null ? src.ModifiedByUser.Name : string.Empty
- });
- //calculate on demand builder.Custom(dest => dest.BillingPlanCode, src => src.WorkspaceBillings.OrderByDescending(x=>x.Created).FirstOrDefault().BillingPlan.Code);
- });
- Define<WorkspaceCDto, Workspace>();
- Define<WorkspaceUDto, Workspace>();
- Define<DocumentCDto, Metadocument>();
- Define<Metadocument, DocumentRDto>(builder =>
- {
- builder.Custom(dest => dest.Audit, src => new BoAuditDto()
- {
- Created = src.Created,
- Changed = src.Modified,
- CreatedBy = src.CreatedByUser.Name,
- ChangedBy = src.ModifiedByUser != null ? src.ModifiedByUser.Name : string.Empty
- });
- //calculate on demand builder.Custom(dest => dest.BillingPlanCode, src => src.WorkspaceBillings.OrderByDescending(x=>x.Created).FirstOrDefault().BillingPlan.Code);
- });
-
- Define<ArtifactCDto, Artifact>();
- Define<Artifact, ArtifactRDto>(builder =>
- {
- builder.Custom(dest => dest.Audit, src => new BoAuditDto()
- {
- Created = src.Created,
- Changed = null,
- CreatedBy = src.CreatedByUser.Name,
- ChangedBy = string.Empty
- });
- //calculate on demand builder.Custom(dest => dest.BillingPlanCode, src => src.WorkspaceBillings.OrderByDescending(x=>x.Created).FirstOrDefault().BillingPlan.Code);
- });
- Define<Structure, StructureRDto>(builder =>
- {
- builder.Custom(dest => dest.DocumentAllCount, src => src.Metadocuments.Count);
- builder.Custom(dest => dest.DocumentPendingCount, src => src.Metadocuments.Count(x => x.Status == (int)DocumentStatusEnum.Pending));
- builder.Custom(dest => dest.DocumentWorkingCount, src => src.Metadocuments.Count(x => x.Status == (int)DocumentStatusEnum.Processing));
- builder.Custom(dest => dest.DocumentDoneCount, src => src.Metadocuments.Count(x => x.Status == (int)DocumentStatusEnum.DoneOk));
- builder.Custom(dest => dest.DocumentFailCount, src => src.Metadocuments.Count(x => x.Status == (int)DocumentStatusEnum.DoneFail));
- builder.Custom(dest => dest.Audit, src => new BoAuditDto()
- {
- Created = src.Created,
- Changed = src.Modified,
- CreatedBy = src.CreatedByUser.Name,
- ChangedBy = src.ModifiedByUser != null ? src.ModifiedByUser.Name : string.Empty
- });
- });
- }
- public void DefineBiDirection<TDao, TDto>()
- where TDao : class, IDao<long>, new()
- where TDto : class, IDto, new()
- {
- DefineBiDirection<TDao, TDto, long>();
- }
- }
- }
|