public DanbooruMappingProfile() { var tagType2TagTypesConverter = new TagTypeToTagTypesValueConverter(); this.CreateMap <Post, PostDto>() .ForMember(dto => dto.ChildIds, opts => opts.ConvertUsing(new IdCollectionFromStringValueConverter(), src => src.ChildrenIds)) .ForMember(dto => dto.Tags, opts => opts.ConvertUsing(new TagDtoCollectionFromPostValueConverter(), src => src)) .ForMember(dto => dto.Source, opts => opts.ConvertUsing(new SourceDtoFromPostValueConverter(), src => src)) .ForMember(dto => dto.Files, opts => opts.ConvertUsing(new FileDtoFromPostValueConverter(), src => src)) .ForMember(dto => dto.Rating, opts => opts.ConvertUsing(new RatingValueConverter(), src => src.Rating)) .ForMember(dto => dto.IsVisible, opts => opts.MapFrom(src => !String.IsNullOrWhiteSpace(src.FileUrl))) .ForMember(dto => dto.Hash, opts => opts.MapFrom(src => src.Md5)) .ForMember(dto => dto.Favourites, opts => opts.MapFrom(src => src.FavCount)) .ForMember(dto => dto.IsFavourited, opts => opts.MapFrom(src => src.IsFavorited)) .ForMember(dto => dto.UploadedAt, opts => opts.MapFrom(src => src.CreatedAt)) .ForMember(dto => dto.LastModifiedAt, opts => opts.MapFrom(src => src.UpdatedAt)) .ForMember(dto => dto.HasNotes, opts => opts.MapFrom(src => src.LastNotedAt.HasValue)) .ForMember(dto => dto.HasSound, opts => opts.MapFrom(src => src.TagString.Contains("video_with_sound") || src.TagString.Contains("flash_with_sound"))) .ForMember(dto => dto.Size, opts => opts.MapFrom(src => new SizeDto(src.ImageWidth, src.ImageHeight))) .ForMember(dto => dto.Uploader, opts => opts.MapFrom(src => new UploaderDto(src.UploaderName, $"https://danbooru.donmai.us/users/{src.UploaderId}"))); this.CreateMap <AutoComplete, AutoCompleteDto>() .ForMember(dto => dto.Count, opts => opts.MapFrom(src => src.PostCount)) .ForMember(dto => dto.Type, opts => opts.ConvertUsing(tagType2TagTypesConverter, src => src.Type)); this.CreateMap <Note, NoteDto>(); this.CreateMap <RelatedTags, RelatedTagsDto>() .ForMember(dto => dto.Tags, opts => opts.ConvertUsing(new AbortionArrayOfArrayOfStringAndIntConverter(tagType2TagTypesConverter), src => src)); this.CreateMap <SavedSearches, SavedSearchesDto>(); }
public AbortionArrayOfArrayOfStringAndIntConverter(TagTypeToTagTypesValueConverter tagTypeConverter) { this._tagTypeConverter = tagTypeConverter; }