public AutoMapperProfiles()
        {
            CreateMap <User, UserForListDto>().ForMember(destinationMember => destinationMember.PhotoUrl, IMappingOperationOptions => {
                IMappingOperationOptions.MapFrom(sourceMember => sourceMember.Photos.FirstOrDefault(p => p.IsMain).Url);
            }).ForMember(Propertytomanuallychange => Propertytomanuallychange.Age, IMappingOperationOptions => {
                IMappingOperationOptions.ResolveUsing(source => source.DateOfBirth.CalculateAge());
            });
            CreateMap <User, UserForDetailedDto>().ForMember(destinationMember => destinationMember.PhotoUrl, IMappingOperationOptions => {
                IMappingOperationOptions.MapFrom(sourceMember => sourceMember.Photos.FirstOrDefault(p => p.IsMain).Url);
            }).ForMember(Propertytomanuallychange => Propertytomanuallychange.Age, IMappingOperationOptions => {
                IMappingOperationOptions.ResolveUsing(source => source.DateOfBirth.CalculateAge());
            });
            CreateMap <Photo, PhotosForDetailedDto>();
            CreateMap <UserForUpdateDto, User>();
            CreateMap <Photo, PhotoForReturnDto>();
            CreateMap <PhotoForCreationDto, Photo>();

            CreateMap <UserForRegisterDto, User>();

            CreateMap <MessageForCreationDto, Message>().ReverseMap();

            CreateMap <Message, MessageToReturnDto>()
            .ForMember(m => m.SenderPhotoUrl, opt => opt.MapFrom(m => m.Sender.Photos.FirstOrDefault(p => p.IsMain).Url))
            .ForMember(m => m.RecipientPhotoUrl, opt => opt.MapFrom(m => m.Recipient.Photos.FirstOrDefault(p => p.IsMain).Url));
        }
        public static void AfterMap <TSource, TDestination>(this IMappingOperationOptions options, Action <TSource, TDestination> afterFunction)
        {
            options.ArgumentNotNull(nameof(options));
            afterFunction.ArgumentNotNull(nameof(afterFunction));

            options.AfterMap((src, dest) => afterFunction((TSource)src, (TDestination)dest));
        }
示例#3
0
 public static IMappingOperationOptions UseEntityCache <TKey, TEntity>(
     this IMappingOperationOptions options,
     IEntityCacheAccessor <TKey, TEntity> entityCache)
     where TEntity : class
 {
     EntityCacheResolutionContextHelper.Add(options.Items, entityCache);
     return(options);
 }
        public static T GetItem <T>(this IMappingOperationOptions options, string key, T defaultValue)
        {
            object obj;

            if (options.Items.TryGetValue(key, out obj))
            {
                return((T)obj);
            }
            return(defaultValue);
        }
示例#5
0
    public static IMappingOperationOptions OnMap <TSrc, TDst>(this IMappingOperationOptions opts,
                                                              Action <TSrc, TDst> resolve)
    {
        var srcTypeName = typeof(TSrc);
        var dstTypeName = typeof(TDst);
        var ctxKey      = $"OnMap_{srcTypeName}_{dstTypeName}";

        opts.Items.Add(ctxKey, resolve);
        return(opts);
    }
示例#6
0
 public AutoMapperProfiles()
 {
     CreateMap <User, UserForListDto>()
     .ForMember(dest => dest.PhotoUrl, opt => opt.MapFrom(sourceMember => sourceMember.Photos.FirstOrDefault(p => p.IsMain).Url))
     .ForMember(dest => dest.Age, IMappingOperationOptions => IMappingOperationOptions
                .MapFrom(src => src.DateOfBirth.CalculateAge()));
     CreateMap <User, UserForDetailedDto>()
     .ForMember(dest => dest.PhotoUrl, opt => opt.MapFrom(sourceMember => sourceMember.Photos.FirstOrDefault(p => p.IsMain).Url))
     .ForMember(dest => dest.Age, IMappingOperationOptions => IMappingOperationOptions
                .MapFrom(src => src.DateOfBirth.CalculateAge()));
     CreateMap <Photo, PhotosForDetailedDto>();
 }
示例#7
0
        private static void PartialCopySetup(IMappingOperationOptions options, IFieldsFilter partialOutput, IFieldsFilter partialInput)
        {
            if (partialOutput != null)
            {
                options.Items[PartialOutput]     = partialOutput;
                options.Items[PartialOutputPath] = new List <string>();
            }

            if (partialInput != null)
            {
                options.Items[PartialInput] = partialInput;
            }
        }
示例#8
0
        public static IMappingOperationOptions <Campaign, Entities.Tenant.Campaigns.Campaign> IgnoreCollections(
            this IMappingOperationOptions <Campaign, Entities.Tenant.Campaigns.Campaign> opts)
        {
            if (opts == null)
            {
                return(null);
            }

            if (!opts.Items.ContainsKey(IgnoreCollectionsItemName))
            {
                opts.Items.Add(IgnoreCollectionsItemName, true);
            }

            return(opts);
        }
示例#9
0
        public static IMappingOperationOptions WithSelectionValue(
            this IMappingOperationOptions opts, bool value)
        {
            if (opts == null)
            {
                return(null);
            }

            if (!opts.Items.ContainsKey(FaultTypeSelectionValue))
            {
                opts.Items.Add(FaultTypeSelectionValue, value);
            }

            return(opts);
        }
示例#10
0
        public static bool TryGetFaultTypeSelectionValue(this IMappingOperationOptions opts, out bool value)
        {
            value = false;

            if (opts is null)
            {
                return(false);
            }

            if (opts.Items.TryGetValue(FaultTypeSelectionValue, out var faultTypeSelectionValue))
            {
                value = (bool)faultTypeSelectionValue;
                return(true);
            }

            return(false);
        }
示例#11
0
        public AutoMapperProfiles()
        {
            CreateMap <AppUser, MemberDto>()
            .ForMember(destinationMember => destinationMember.PhotoUrl,
                       IMappingOperationOptions => IMappingOperationOptions
                       .MapFrom(sourceMember =>
                                sourceMember.Photos.FirstOrDefault(x => x.IsMain).Url))

            .ForMember(destinationMember => destinationMember.Age,
                       IMappingOperationOptions => IMappingOperationOptions
                       .MapFrom(sourceMember =>
                                sourceMember.DateOfBirth.CalculateAge()));

            CreateMap <Photo, PhotoDto>();

            CreateMap <MemberUpdateDto, AppUser>();

            CreateMap <RegisterDto, AppUser>();
        }
示例#12
0
        public AutoMapperProfiles()
        {
            // we specify the source and the destination mappings
            CreateMap <User, UserForListDto>()
            //dest is destination, opt is option, src is source, p is photo

            // get photo URL
            .ForMember(dest => dest.PhotoUrl, opt => opt.MapFrom(src => src.Photos.FirstOrDefault(p => p.IsMain).Url))
            // get age of user
            .ForMember(dest => dest.Age, IMappingOperationOptions => IMappingOperationOptions.MapFrom(src => src.DateOfBirth.CalculateAge()));

            CreateMap <User, UserForDetailedDto>()
            .ForMember(dest => dest.PhotoUrl, opt => opt.MapFrom(src => src.Photos.FirstOrDefault(p => p.IsMain).Url))
            .ForMember(dest => dest.Age, IMappingOperationOptions => IMappingOperationOptions.MapFrom(src => src.DateOfBirth.CalculateAge()));

            CreateMap <Photo, PhotosForDetailedDto>();
            // whenever you create a map, it's "from" then "to"
            // exmaple: you want to map UserForUpdateDto to the User, not the other way around
            CreateMap <UserForUpdateDto, User>();
        }
        public static void SetPreviousSheetVisitMarker(
            [NotNull] this IMappingOperationOptions <SheetEntry, SheetEntryDTO> mappingOperationOptions,
            [NotNull] PreviousSheetVisitMarker marker
            )
        {
            if (mappingOperationOptions == null)
            {
                throw new ArgumentNullException(nameof(mappingOperationOptions));
            }
            if (marker == null)
            {
                throw new ArgumentNullException(nameof(marker));
            }

            try
            {
                mappingOperationOptions.Items.Add(SheetLastVisitedMarkerKey, marker);
            }
            catch (ArgumentException ex)
            {
                throw new InvalidOperationException($"{nameof(SetPreviousSheetVisitMarker)} has been called earlier", ex);
            }
        }
示例#14
0
 /// <summary>
 /// Sets a context culture.
 /// </summary>
 public static void SetCulture(this IMappingOperationOptions options, string culture)
 {
     options.Items[CultureKey] = culture;
 }
 public static IMappingOperationOptions WithEducationOrganizations(this IMappingOperationOptions mappingOperationOptions, List <EducationOrganizationModel> educationOrganization)
 {
     mappingOperationOptions.Items[EducationOrganizationsKey] = educationOrganization ?? new List <EducationOrganizationModel>();
     return(mappingOperationOptions);
 }
示例#16
0
 /// <summary>
 /// Gets the context culture.
 /// </summary>
 public static string GetCulture(this IMappingOperationOptions options)
 {
     return(options.Items.TryGetValue(CultureKey, out var obj) && obj is string s ? s : null);
 }
示例#17
0
 private void DefaultMappingOptions(IMappingOperationOptions opts)
 {
     opts.ConstructServicesUsing(_serviceCtor);
 }
示例#18
0
 public ResolutionContext(IMappingOperationOptions options, IRuntimeMapper mapper)
 {
     Options = options;
     Mapper  = mapper;
 }
示例#19
0
 public static void InitialiseContext(IMappingOperationOptions opts)
 {
     opts.Items["Dummy"] = "";
 }
 private void DefaultMappingOptions(IMappingOperationOptions opts)
 {
     opts.ConstructServicesUsing(_container.Resolve);
 }
示例#21
0
 internal ResolutionContext(IMappingOperationOptions options, IInternalRuntimeMapper mapper)
 {
     Options = options;
     _inner  = mapper;
 }
示例#22
0
 /// <summary>
 /// Configure mapper
 /// </summary>
 /// <param name="opt"></param>
 private static void RegisterModelConfigureMap(IMappingOperationOptions <RegisterViewModel, User> opt)
 {
     opt.ConfigureMap()
     .ForMember(x => x.Id, x => x.Ignore())
     .ForMember(x => x.Score, x => x.Ignore());
 }
示例#23
0
 public static void ConfigureMap(IMappingOperationOptions <CustomerDTO, Customer> opt)
 {
     opt.ConfigureMap()
     .ForMember(dest => dest.ID, m => m.Ignore());
 }
 public static void Localice(IMappingOperationOptions <object, object> opt, LanguageDTO language, ILocalizedPropertyRepository localizedPropertyRepository)
 {
     opt.Items["Language"]   = language;
     opt.Items["Repository"] = localizedPropertyRepository;
 }
示例#25
0
 /// <summary>
 /// Get included properties.
 /// </summary>
 public static string[] GetIncludedProperties(this IMappingOperationOptions options)
 {
     return(options.Items.TryGetValue(IncludedPropertiesKey, out var obj) && obj is string[] s ? s : null);
 }
示例#26
0
 /// <summary>
 /// Sets included properties.
 /// </summary>
 public static void SetIncludedProperties(this IMappingOperationOptions options, string[] properties)
 {
     options.Items[IncludedPropertiesKey] = properties;
 }
示例#27
0
 public static bool AreCollectionsIgnored(this IMappingOperationOptions opts)
 {
     return(opts?.Items.ContainsKey(IgnoreCollectionsItemName) ?? false);
 }