示例#1
0
        private bool Validate(CreateClienteRequest createClienteRequest)
        {
            if (createClienteRequest == null)
            {
                return(false);
            }

            if (string.IsNullOrWhiteSpace(createClienteRequest.Codigo))
            {
                return(false);
            }
            else if (repository.Contains(x => x.Id != createClienteRequest.Id && x.Codigo.Equals(createClienteRequest.Codigo)))
            {
                return(false);
            }

            if (repository.Contains(x => x.Id != createClienteRequest.Id && x.Documento.Tipo.Equals(createClienteRequest.TipoDocumento) &&
                                    x.Documento.Numero.Equals(createClienteRequest.NumeroDocumento)))
            {
                return(false);
            }

            if (!ValidateEMailAddress(createClienteRequest))
            {
                return(false);
            }

            return(true);
        }
        public CreateClienteResponse Create(CreateClienteRequest request)
        {
            var cliente = request.ProjectedAs <Cliente>();

            var response = _service.Create(cliente);

            if (response.IsSuccess)
            {
                _uow.Commit();
            }

            return(response.ProjectedAs <CreateClienteResponse>());
        }
示例#3
0
 public Cliente Save(CreateClienteRequest createRequest)
 {
     if (Validate(createRequest))
     {
         Cliente cliente = new Cliente();
         MapRequest(createRequest, cliente);
         return(base.Save(cliente));
     }
     else
     {
         //TODO: HABRIA QUE DEVOLVER UNA RESPUESTA QUE CONTENGA EL MENSAJE DE ERROR
         throw new ALaMaronaException("Cliente invalido");
     }
 }
示例#4
0
 private void MapRequest(CreateClienteRequest createRequest, Cliente cliente)
 {
     cliente.Codigo    = createRequest.Codigo;
     cliente.Documento = new Documento()
     {
         Numero = createRequest.NumeroDocumento,
         Tipo   = createRequest.TipoDocumento
     };
     cliente.Domicilio       = createRequest.Domicilio.MapDireccion();
     cliente.EMail           = createRequest.EMail;
     cliente.EstadoCivil     = createRequest.EstadoCivil;
     cliente.FechaNacimiento = DateTimeHelper.ParseDateNullable(createRequest.FechaNacimiento);
     cliente.LugarNacimiento = createRequest.LugarNacimiento.MapDireccion();
     cliente.Nombre          = createRequest.MapNombre();
     cliente.Telefono        = createRequest.Telefono;
 }
示例#5
0
 public IActionResult CreateCliente([FromBody] CreateClienteRequest clienteRequest)
 {
     try
     {
         ClienteWithEnderecoDTO clienteDTO = _mapper.Map <CreateClienteRequest, ClienteWithEnderecoDTO>(clienteRequest);
         var cliente = _clienteService.CreateCliente(clienteDTO);
         return(Created(String.Empty, cliente));
     }
     catch (ArgumentException)
     {
         return(BadRequest());
     }
     catch
     {
         return(new StatusCodeResult(500));
     }
 }
示例#6
0
        private bool ValidateEMailAddress(CreateClienteRequest createClienteRequest)
        {
            try
            {
                MailAddress mailAddress = new MailAddress(createClienteRequest.EMail);
            }
            catch (Exception)
            {
                return(false);
            }

            if (repository.Contains(x => x.Id != createClienteRequest.Id &&
                                    createClienteRequest.EMail.Equals(x.EMail, System.StringComparison.InvariantCultureIgnoreCase)))
            {
                return(false);
            }

            return(true);
        }
示例#7
0
        public ActionResult Create([FromBody] CreateClienteRequest request)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(BadRequest(ModelState.GetErrorResponse()));
                }

                var response = _service.Create(request);

                if (!response.Success)
                {
                    return(BadRequest(response.Erros));
                }

                return(Ok());
            }
            catch (Exception ex)
            {
                return(BadRequest(ex));
            }
        }
示例#8
0
        public ClienteDTO Post([FromBody] CreateClienteRequest createRequest)
        {
            var cliente = ClienteBusiness.Save(createRequest);

            return(Mapper.Map <ClienteDTO>(cliente));
        }