TemplatePro/BZPT.Domains/AutoMapperProfiles/AutoMapperProfile.cs

67 lines
2.3 KiB
C#

using AutoMapper;
using NPlatform.AutoMap;
using BZPT.Domains.Entity;
using BZPT.Dto.VO;
using NPlatform.Result;
using System.Collections;
using System.Collections.Generic;
using System.Text;
using System.Configuration;
using System.Reflection;
namespace BZPT.Domains
{
public class AutoMapperProfile : Profile, IProfile
{
/// <summary>
/// 配置可以互转的类
/// </summary>
public AutoMapperProfile()
{
////用户到VO对象的映射
//CreateMap<User, UserVO>()
// .ForMember(dst=>dst.Organization,src=>src.MapFrom(z=>z.Organization.Name))// 指定某个的属性从另一个对象的子属性获取(展平对象)
// .ForMember(dst => dst.RoleName, //目标字段
// src => src.MapFrom(z => GetRoleName(z.Roles))) //来源字段
// .ReverseMap();
//CreateMap<User, UserDto>().ReverseMap();
//CreateMap<Organization, OrganizationDto>()
// .ForMember(dst=>dst.Parents,src=>src.MapFrom(z=>z.Parents.Split(",", StringSplitOptions.RemoveEmptyEntries)))
// .ReverseMap();
//CreateMap<Organization, OrganizationDto>().ReverseMap();
//CreateMap<DictionaryDto, Dictionary>().ReverseMap();
}
//public string GetRoleName(List<Role> roles) {
// StringBuilder strRole = new StringBuilder();
// foreach (Role role in roles) {
// strRole.Append(role.Name);
// strRole.Append(",");
// }
// return strRole.ToString();
//}
/// <summary>
/// 字符串转时间类型
/// </summary>
public class DateTimeTypeConverter : ITypeConverter<string, DateTime>
{
public DateTime Convert(string source, DateTime destination, ResolutionContext context)
{
return System.Convert.ToDateTime(source);
}
}
/// <summary>
/// 字符串转Type类型
/// </summary>
public class TypeTypeConverter : ITypeConverter<string, Type>
{
public Type Convert(string source, Type destination, ResolutionContext context)
{
return Assembly.GetEntryAssembly().GetType(source);
}
}
}
}