示例#1
0
        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>();
        }
示例#2
0
 public AbortionArrayOfArrayOfStringAndIntConverter(TagTypeToTagTypesValueConverter tagTypeConverter)
 {
     this._tagTypeConverter = tagTypeConverter;
 }