示例#1
0
        public async Task <IActionResult> PostWithManualValidation([FromBody][CustomizeValidator(Skip = true)] Person person)
        {
            var validator = new PersonValidator();
            var result    = await validator.ValidateAsync(person);

            if (!result.IsValid)
            {
                result.AddToModelState(ModelState, null);
                return(ValidationProblem()); //BadRequest(ModelState); <-- this doesn't returns the same result as the middleware https://github.com/dotnet/aspnetcore/issues/6077
            }

            return(await new ValueTask <IActionResult>(Ok()));
        }
示例#2
0
        public async Task <EntityResult <PersonCreatedDto> > Handle(InsertPersonRequest request, CancellationToken cancellationToken)
        {
            PersonValidator  validator = new PersonValidator(_context);
            ValidationResult result    = await validator.ValidateAsync(request);

            if (!result.IsValid)
            {
                foreach (var item in result.Errors)
                {
                    request.AddNotification(item.PropertyName, item.ErrorMessage);
                }

                return(new EntityResult <PersonCreatedDto>(request.Notifications, result.Errors.All(err => err.ErrorCode == ErrorCode.NotFound.ToString()) ? ErrorCode.NotFound : ErrorCode.BadRequest));
            }

            NaturalPersons naturalPerson = new NaturalPersons()
            {
                FirstName      = request.NaturalPerson.FirstName,
                LastName       = request.NaturalPerson.LastName,
                LastNamePrefix = request.NaturalPerson.LastNamePrefix,
                FullName       = request.NaturalPerson.FullName,
                BirthDate      = request.NaturalPerson.BirthDate,
                DateOfDeath    = (request.NaturalPerson.DateOfDeath.Equals(null)) ? null : new DateTime?(Convert.ToDateTime(request.NaturalPerson.DateOfDeath)),
                MaritalStatus  = (request.NaturalPerson.MaritalStatus != 0) ? request.NaturalPerson.MaritalStatus : new int?(),
                Nationality    = request.NaturalPerson.Nationality,
                Gender         = request.NaturalPerson.Gender,
                Alias          = request.NaturalPerson.Alias
            };

            List <Incomes> incomes = new List <Incomes>();

            foreach (var i in request.Income)
            {
                var income = new Incomes
                {
                    Value       = i.Value,
                    Currency    = i.Currency,
                    Company     = i.Company,
                    Periodicity = (i.Periodicity != 0) ? i.Periodicity : new int?(),
                    ValidFrom   = i.ValidFrom,
                    ValidTo     = (i.ValidTo.Equals(null)) ? null : new DateTime?(Convert.ToDateTime(i.ValidTo)),
                };
                incomes.Add(income);
            }

            List <Address> addresses = new List <Address>();

            if (!request.Address.Equals(null))
            {
                foreach (var a in request.Address)
                {
                    var address = new Address
                    {
                        City              = (a.City != 0) ? a.City : new int?(),
                        PostCode          = a.PostCode,
                        StreetName        = a.StreetName,
                        BuildingNumber    = a.BuildingNumber,
                        AddressLine       = a.AddressLine,
                        Latitude          = a.Latitude,
                        Longitude         = a.Longitude,
                        AddressType       = a.AddressType,
                        PostOfficeBoxCode = a.PostOfficeBoxCode,
                        PoboxPostalCode   = a.PoboxPostalCode,
                        StatusCodeAddress = (a.StatusCodeAddress != 0) ? a.StatusCodeAddress : new int?(),
                        Coname            = a.Coname,
                        ValidFrom         = a.ValidFrom,
                        ValidTo           = (a.ValidTo.Equals(null)) ? null : new DateTime?(Convert.ToDateTime(a.ValidTo)),
                        Neighborhood      = a.Neighborhood
                    };

                    addresses.Add(address);
                }
            }

            List <IdentificationsDocuments> identificationDocuments = new List <IdentificationsDocuments>();

            if (!request.IdentificationDocument.Equals(null))
            {
                foreach (var i in request.IdentificationDocument)
                {
                    var d = new IdentificationsDocuments
                    {
                        DocumentNumber             = i.DocumentNumber,
                        IssuingDate                = (i.IssuingDate.Equals(null)) ? null : new DateTime?(Convert.ToDateTime(i.IssuingDate)),
                        IssuingAuthority           = i.IssuingAuthority,
                        ExpiryDate                 = (i.ExpiryDate.Equals(null)) ? null : new DateTime?(Convert.ToDateTime(i.ExpiryDate)),
                        ValidFrom                  = i.ValidFrom,
                        ValidTo                    = (i.ValidTo.Equals(null)) ? null : new DateTime?(Convert.ToDateTime(i.ValidTo)),
                        IdentificationDocumentType = i.IdentificationDocumentType
                    };
                    identificationDocuments.Add(d);
                }
                ;
            }

            List <Attachments> attachments = new List <Attachments>();

            if (!request.Attachment.Equals(null))
            {
                foreach (var a in request.Attachment)
                {
                    var attachment = new Attachments
                    {
                        FileName       = a.FileName,
                        Notes          = a.Notes,
                        AttachmentType = a.AttachmentType,
                        OwnerKey       = a.OwnerKey,
                        FileSize       = a.FileSize,
                        Name           = a.Name,
                        EncodedKey     = a.EncodedKey,
                        Location       = a.Location,
                    };
                    attachments.Add(attachment);
                }
            }
            List <Emails> emails = new List <Emails>();

            if (!request.Email.Equals(null))
            {
                foreach (var e in request.Email)
                {
                    var email = new Emails
                    {
                        EmailAddress = e.EmailAddress,
                        Validated    = e.Validated,
                        ValidFrom    = e.ValidFrom,
                        ValidTo      = (e.ValidTo.Equals(null)) ? null : new DateTime?(Convert.ToDateTime(e.ValidTo)),
                    };
                    emails.Add(email);
                }
                ;
            }

            List <Phones> phones = new List <Phones>();

            if (!request.Phone.Equals(null))
            {
                foreach (var f in request.Phone)
                {
                    var phone = new Phones
                    {
                        CountryIsoCode = f.CountryIsoCode,
                        AreaCode       = f.AreaCode,
                        PhoneNumber    = f.PhoneNumber,
                        Extension      = f.Extension,
                        PhoneType      = f.PhoneType,
                        ValidFrom      = f.ValidFrom,
                        ValidTo        = (f.ValidTo.Equals(null)) ? null : new DateTime?(Convert.ToDateTime(f.ValidTo)),
                    };
                    phones.Add(phone);
                }
            }

            List <Roles> roles = new List <Roles>();

            foreach (var item in request.Rol)
            {
                var rol = new Roles
                {
                    RoleType  = item.RoleType,
                    ValidFrom = item.ValidFrom,
                    ValidTo   = (item.ValidTo.Equals(null)) ? null : new DateTime?(Convert.ToDateTime(item.ValidTo)),
                };
                roles.Add(rol);
            }

            Persons person = new Persons
            {
                PersonId                 = Guid.NewGuid(),
                TransactionId            = (request.Transaction == 0) ? new long() : request.Transaction,
                PersonNumber             = request.PersonNumber,
                Category                 = request.Category,
                Status                   = request.Status,
                NaturalPersons           = naturalPerson,
                Address                  = addresses,
                IdentificationsDocuments = identificationDocuments,
                Emails                   = emails,
                Phones                   = phones,
                Roles       = roles,
                Attachments = attachments,
                Incomes     = incomes
            };

            _context.Persons.Add(person);
            await _context.SaveChangesAsync(cancellationToken);

            return(new EntityResult <PersonCreatedDto>(request.Notifications, new PersonCreatedDto
            {
                PersonId = person.PersonId
            }));
        }