using AutoMapper; using AutoMapper.EquivalencyExpression; using IRaCIS.Application.Contracts; using IRaCIS.Core.Application.Auth; using IRaCIS.Core.Application.Contracts; using IRaCIS.Core.Application.Service.Reading.Dto; using IRaCIS.Core.Application.ViewModel; namespace IRaCIS.Core.Application.Service { public class ManagementConfig : Profile { public ManagementConfig() { CreateMap().IncludeMembers(t => t.Menu); CreateMap().ForMember(d => d.UserCode, x => x.Ignore()); CreateMap().ReverseMap() .ForMember(t => t.UserTypeMenuList, u => u.MapFrom(c => c.MenuIds)) .ForMember(t => t.UserTypeGroupList, u => u.MapFrom(c => c.UserTypeGroupIdList)); CreateMap().ForMember(t => t.DictionaryId, u => u.MapFrom(c => c)) .EqualityComparison((odto, o) => odto == o.DictionaryId); CreateMap().ForMember(t => t.MenuId, u => u.MapFrom(c => c)) .EqualityComparison((odto, o) => odto == o.MenuId); CreateMap() .ForMember(t => t.GroupName, u => u.MapFrom(c => c.Group.Value)) .ForMember(t => t.GroupNameCN, u => u.MapFrom(c => c.Group.ValueCN)); CreateMap().ForMember(d => d.Id, u => u.MapFrom(t => t.MenuId)).ReverseMap(); CreateMap() .ForMember(d => d.MenuId, u => u.MapFrom(t => t.Id)); CreateMap().ForMember(d => d.MenuId, u => u.MapFrom(t => t.Id)); CreateMap() .ForMember(t => t.MenuIds, u => u.MapFrom(c => c.UserTypeMenuList.Select(t => t.MenuId))); CreateMap(); CreateMap(); //用户类型菜单勾选 var userTypeId = Guid.Empty; CreateMap() .ForMember(d => d.IsSelect, u => u.MapFrom(s => s.UserTypeMenuList.Any(t => t.UserTypeId == userTypeId))); //菜单树 CreateMap() /*.ForMember(d => d.meta, u => u.MapFrom(s => new Meta() { MetaTitle = s.MetaTitle, MetaBreadcrumb = s.MetaBreadcrumb, MetaIcon = s.MetaIcon, MetaActiveMenu = s.MetaActiveMenu }))*/; //功能树 CreateMap(); //普通用户菜单树 CreateMap().IncludeMembers(t => t.Menu) .ForMember(d => d.Id, u => u.MapFrom(t => t.Menu.Id)); //.ForMember(d => d.meta, u => u.MapFrom(s => new Meta() { MetaTitle = s.MenuFunction.MetaTitle, MetaBreadcrumb = s.MenuFunction.MetaBreadcrumb, MetaIcon = s.MenuFunction.MetaIcon, MetaActiveMenu = s.MenuFunction.MetaActiveMenu })); CreateMap().IncludeMembers(t => t.Menu) .ForMember(d => d.Id, u => u.MapFrom(t => t.Menu.Id)); CreateMap() .ForMember(d => d.UserType, u => u.MapFrom(t => t.UserTypeName)); CreateMap() .ForMember(d => d.RealName, u => u.MapFrom(s => s.FullName)) .ForMember(d => d.UserTypeId, u => u.MapFrom(s => s.UserTypeRole.Id)) .ForMember(d => d.UserType, u => u.MapFrom(s => s.UserTypeRole.UserTypeName)) .ForMember(d => d.UserTypeShortName, u => u.MapFrom(s => s.UserTypeRole.UserTypeShortName)) .ForMember(d => d.CanEditUserType, u => u.MapFrom(s => !s.UserTrials.Any())); CreateMap() .ForMember(d => d.RealName, u => u.MapFrom(s => s.FullName)) .ForMember(d => d.UserTypeId, u => u.MapFrom(s => s.UserTypeRole.Id)) .ForMember(d => d.UserType, u => u.MapFrom(s => s.UserTypeRole.UserTypeShortName)) .ForMember(d => d.CanEditUserType, u => u.MapFrom(s => !s.UserTrials.Any())); var token = string.Empty; var userId = Guid.Empty; CreateMap() .ForMember(t => t.PublishUserName, d => d.MapFrom(t => t.PublishedUser.UserName)) .ForMember(t => t.CreateUserName, d => d.MapFrom(t => t.CreateUser.UserName)) .ForMember(d => d.FullFilePath, u => u.MapFrom(s => s.Path + "?access_token=" + token)); CreateMap() .ForMember(t => t.PublishUserName, d => d.MapFrom(t => t.PublishedUser.UserName)) .ForMember(t => t.CreateUserName, d => d.MapFrom(t => t.CreateUser.UserName)) .ForMember(t => t.IsRead, d => d.MapFrom(t => t.NoticeUserReadList.Any(t => t.CreateUserId == userId))) .ForMember(d => d.FullFilePath, u => u.MapFrom(s => s.Path + "?access_token=" + token)); CreateMap().ReverseMap() .ForMember(t => t.NoticeUserTypeList, u => u.MapFrom(t => t.NoticeUserTypeIdList)); CreateMap().IncludeMembers(t => t.NoticeUserType) .ForMember(t => t.Id, u => u.MapFrom(u => u.NoticeUserType.Id)); CreateMap(); CreateMap().EqualityComparison((odto, o) => odto == o.UserTypeId) .ForMember(d => d.UserTypeId, c => c.MapFrom(t => t)); CreateMap() .ForMember(d => d.LoginUserName, c => c.MapFrom(t => t.LoginUser.UserName)) .ForMember(d => d.LoginUserTypeEnum, c => c.MapFrom(t => t.LoginUser.UserTypeEnum)) .ForMember(d => d.OptUserName, c => c.MapFrom(t => t.OptUser.UserName)) .ForMember(d => d.OptUserTypeEnum, c => c.MapFrom(t => t.OptUser.UserTypeEnum)) ; CreateMap() .ForMember(d => d.ExperimentName, c => c.MapFrom(t => t.Trial.ExperimentName)) .ForMember(d => d.TrialCode, c => c.MapFrom(t => t.Trial.TrialCode)) .ForMember(d => d.SubjectCode, c => c.MapFrom(t => t.Subject.Code)) .ForMember(d => d.TrialSiteCode, c => c.MapFrom(t => t.VisitTask.IsAnalysisCreate ? t.VisitTask.BlindTrialSiteCode : t.TrialSite.TrialSiteCode)) .ForMember(d => d.SubjectVisitName, c => c.MapFrom(t => t.SubjectVisit.VisitName)) .ForMember(d => d.FeedBackUserName, c => c.MapFrom(t => t.CreateUser.UserName)) .ForMember(d => d.FeedBackFullName, c => c.MapFrom(t => t.CreateUser.FullName)) .ForMember(d => d.UserTypeEnum, c => c.MapFrom(t => t.CreateUser.UserTypeEnum)) .ForMember(d => d.ScreenshotList, c => c.MapFrom(t => t.FeedBackScreenshotList)) ; CreateMap().ReverseMap(); CreateMap() .ForMember(d => d.UserRoleId, c => c.MapFrom(t => t.Id)); } } }