using AutoMapper; using IM_API.Dtos; using IM_API.Models; namespace IM_API.Configs { public class MapperConfig:Profile { public MapperConfig() { CreateMap(); //用户信息更新模型转换 CreateMap() .ForMember(dest => dest.Updated,opt => opt.MapFrom(src => DateTime.Now)) .ForAllMembers(opts => opts.Condition((src,dest,srcMember) => srcMember != null)); //用户注册模型转换 CreateMap() .ForMember(dest => dest.Username,opt => opt.MapFrom(src => src.Username)) .ForMember(dest => dest.Password,opt => opt.MapFrom(src => src.Password)) .ForMember(dest => dest.Avatar,opt => opt.MapFrom(src => "https://ts1.tc.mm.bing.net/th/id/OIP-C.dl0WpkTP6E2J4FnhDC_jHwAAAA?rs=1&pid=ImgDetMain&o=7&rm=3")) .ForMember(dest => dest.StatusEnum,opt => opt.MapFrom(src => UserStatus.Normal)) .ForMember(dest => dest.OnlineStatusEnum,opt => opt.MapFrom(src => UserOnlineStatus.Offline)) .ForMember(dest => dest.NickName,opt => opt.MapFrom(src => src.NickName??"默认用户")) .ForMember(dest => dest.Created,opt => opt.MapFrom(src => DateTime.Now)) .ForMember(dest => dest.IsDeleted,opt => opt.MapFrom(src => 0)) ; //好友信息模型转换 CreateMap(); //好友请求通过后新增好友关系 CreateMap() .ForMember(dest => dest.UserId , opt => opt.MapFrom(src => src.RequestUser)) .ForMember(dest => dest.FriendId , opt => opt.MapFrom(src => src.ResponseUser)) .ForMember(dest => dest.StatusEnum , opt =>opt.MapFrom(src => FriendStatus.Added)) .ForMember(dest => dest.RemarkName , opt => opt.MapFrom(src => src.ResponseUserNavigation.NickName)) .ForMember(dest => dest.Created , opt => opt.MapFrom(src => DateTime.Now)) ; //发起好友请求转换请求对象 CreateMap() .ForMember(dest => dest.RequestUser , opt => opt.MapFrom(src => src.FromUserId)) .ForMember(dest => dest.ResponseUser , opt => opt.MapFrom(src => src.ToUserId)) .ForMember(dest => dest.Created , opt => opt.MapFrom(src => DateTime.Now)) .ForMember(dest => dest.StateEnum , opt => opt.MapFrom(src => FriendRequestState.Pending)) .ForMember(dest => dest.Description , opt => opt.MapFrom(src => src.Description)) ; //消息模型转换 CreateMap() .ForMember(dest => dest.Type , opt => opt.MapFrom(src => src.MsgTypeEnum.ToString())) .ForMember(dest => dest.MsgId , opt => opt.MapFrom(src => src.Id)) .ForMember(dest => dest.SenderId , opt => opt.MapFrom(src => src.Sender)) .ForMember(dest => dest.ChatType , opt => opt.MapFrom(src => src.ChatTypeEnum.ToString())) .ForMember(dest => dest.ReceiverId, opt => opt.MapFrom(src => src.Recipient)) .ForMember(dest => dest.Content, opt => opt.MapFrom(src => src.Content)) .ForMember(dest => dest.TimeStamp, opt => opt.MapFrom(src => src.Created)) ; CreateMap() .ForMember(dest => dest.Sender, opt => opt.MapFrom(src => src.SenderId)) .ForMember(dest => dest.ChatTypeEnum,opt => opt.MapFrom(src => src.ChatType)) .ForMember(dest => dest.MsgTypeEnum, opt => opt.MapFrom(src => src.Type)) .ForMember(dest => dest.Created, opt => opt.MapFrom(src => src.TimeStamp)) .ForMember(dest => dest.Content, opt => opt.MapFrom(src => src.Content)) .ForMember(dest => dest.Recipient, opt => opt.MapFrom(src => src.ReceiverId)) .ForMember(dest => dest.StateEnum, opt => opt.MapFrom(src => MessageState.Sent)) ; } } }