public virtual IDtoMetadataBuilder <TDto> AddMemberMetadata(string memberName, DtoMemberMetadata metadata)
        {
            if (memberName == null)
            {
                throw new ArgumentNullException(nameof(memberName));
            }

            if (metadata == null)
            {
                throw new ArgumentNullException(nameof(metadata));
            }

            return(AddMemberMetadata(typeof(TDto).GetTypeInfo().GetProperty(memberName) ?? throw new InvalidOperationException($"Member {memberName} could not be found in {typeof(TDto).FullName}"), metadata));
        }
        public virtual IDtoMetadataBuilder <TDto> AddMemberMetadata(string memberName, DtoMemberMetadata metadata)
        {
            if (memberName == null)
            {
                throw new ArgumentNullException(nameof(memberName));
            }

            if (metadata == null)
            {
                throw new ArgumentNullException(nameof(metadata));
            }

            return(AddMemberMetadata(typeof(TDto).GetTypeInfo().GetProperty(memberName), metadata));
        }
        public virtual IDtoMetadataBuilder <TDto> AddMemberMetadata(PropertyInfo member, DtoMemberMetadata metadata)
        {
            if (member == null)
            {
                throw new ArgumentNullException(nameof(member));
            }

            if (metadata == null)
            {
                throw new ArgumentNullException(nameof(metadata));
            }

            if (_dtoMetadata == null)
            {
                throw new InvalidOperationException($"{nameof(AddDtoMetadata)} must be called first");
            }

            metadata.DtoMemberName = member.Name;

            if (metadata.IsRequired == false)
            {
                metadata.IsRequired = member.GetCustomAttribute <RequiredAttribute>() != null;
            }

            if (metadata.Pattern == null)
            {
                metadata.Pattern = member.GetCustomAttribute <RegularExpressionAttribute>()?.Pattern;
            }

            _dtoMetadata.MembersMetadata.Add(metadata);

            return(this);
        }
Exemplo n.º 4
0
        public virtual IDtoMetadataBuilder <TDto> AddMemberMetadata(PropertyInfo member, DtoMemberMetadata metadata)
        {
            if (member == null)
            {
                throw new ArgumentNullException(nameof(member));
            }

            if (metadata == null)
            {
                throw new ArgumentNullException(nameof(metadata));
            }

            if (_dtoMetadata == null)
            {
                throw new InvalidOperationException($"{nameof(AddDtoMetadata)} must be called first");
            }

            metadata.DtoMemberName = member.Name;

            if (metadata.IsRequired == false)
            {
                metadata.IsRequired = member.GetCustomAttribute <RequiredAttribute>() != null;
            }

            if (metadata.Pattern == null)
            {
                metadata.Pattern = member.GetCustomAttribute <RegularExpressionAttribute>()?.Pattern;
            }

            foreach (DtoMemberCultureTitle memberCultureTitle in metadata.EntityMemberCultureTitles)
            {
                if (!metadata.Messages.Any(m => m.Name == memberCultureTitle.CultureName))
                {
                    metadata.Messages.Add(new EnvironmentCulture {
                        Name = memberCultureTitle.CultureName
                    });
                }

                metadata.Messages.Single(m => m.Name == memberCultureTitle.CultureName)
                .Values.Add(new EnvironmentCultureValue {
                    Name = member.Name, Title = memberCultureTitle.Title
                });
            }

            _dtoMetadata.MembersMetadata.Add(metadata);

            return(this);
        }