public HttpResponseMessage InserirCadastro(HttpRequestMessage request, EnderecoViewModel enderecoViewModel) { return(CreateHttpResponse(request, () => { HttpResponseMessage response = null; if (enderecoViewModel.BairroDescNew != null || enderecoViewModel.BairroDescNew != "") { //remove a validação do bairro quase não tenha achado, pois nesse caso vamos cadastro o digitado manualmente ModelState.Remove("enderecoViewModel.BairroId"); } if (!ModelState.IsValid) { response = request.CreateResponse(HttpStatusCode.BadRequest, ModelState.Keys.SelectMany(k => ModelState[k].Errors) .Select(m => m.ErrorMessage).ToArray()); } else { if (_enderecoRep.VerificaEnderecoJaCadastrado(enderecoViewModel.Cep, enderecoViewModel.PessoaId) > 0) { ModelState.AddModelError("CEP Existente", "CEP:" + enderecoViewModel.Cep + " já existe."); response = request.CreateResponse(HttpStatusCode.BadRequest, ModelState.Keys.SelectMany(k => ModelState[k].Errors) .Select(m => m.ErrorMessage).ToArray()); } else { Usuario usuario = _usuarioRep.GetSingle(1); if (!string.IsNullOrEmpty(enderecoViewModel.BairroDescNew)) { //var cit = _cidadeRep.GetSingle(fornecedorViewModel.Endereco.CidadeId); Bairro bairroCad = new Bairro() { DescBairro = enderecoViewModel.BairroDescNew, CidadeId = enderecoViewModel.CidadeId, DtCriacao = DateTime.Now, UsuarioCriacao = usuario }; _bairroRep.Add(bairroCad); _unitOfWork.Commit(); enderecoViewModel.BairroId = bairroCad.Id; } if (_enderecoRep.GetAll().Count(x => x.Pessoa.Id == enderecoViewModel.PessoaId) == 0) { enderecoViewModel.EnderecoPadrao = true; } Endereco novoEndereco = new Endereco() { UsuarioCriacao = usuario, DtCriacao = DateTime.Now, PessoaId = enderecoViewModel.PessoaId, EstadoId = enderecoViewModel.EstadoId, CidadeId = enderecoViewModel.CidadeId, BairroId = enderecoViewModel.BairroId, LogradouroId = enderecoViewModel.LogradouroId, Numero = enderecoViewModel.NumEndereco, Complemento = enderecoViewModel.Complemento, DescEndereco = enderecoViewModel.Endereco.Trim(), Cep = enderecoViewModel.Cep, Ativo = enderecoViewModel.Ativo, EnderecoPadrao = enderecoViewModel.EnderecoPadrao, Referencia = enderecoViewModel.Referencia }; novoEndereco.LocalizacaoGoogle(); _enderecoRep.Add(novoEndereco); _unitOfWork.Commit(); Membro membroAtual = _membroRep.FindBy(p => p.PessoaId == enderecoViewModel.PessoaId).FirstOrDefault(); // Update view model enderecoViewModel = Mapper.Map <Endereco, EnderecoViewModel>(novoEndereco); response = request.CreateResponse(HttpStatusCode.Created, enderecoViewModel); } } return response; })); }
public HttpResponseMessage Inserir(HttpRequestMessage request, EnderecoViewModel enderecoViewModel) { return(CreateHttpResponse(request, () => { HttpResponseMessage response = null; if (!ModelState.IsValid) { response = request.CreateResponse(HttpStatusCode.BadRequest, ModelState.Keys.SelectMany(k => ModelState[k].Errors) .Select(m => m.ErrorMessage).ToArray()); } else { if (_enderecoRep.VerificaEnderecoJaCadastrado(enderecoViewModel.Cep, enderecoViewModel.PessoaId) > 0) { ModelState.AddModelError("CEP Existente", "CEP:" + enderecoViewModel.Cep + " já existe."); response = request.CreateResponse(HttpStatusCode.BadRequest, ModelState.Keys.SelectMany(k => ModelState[k].Errors) .Select(m => m.ErrorMessage).ToArray()); } else { Usuario usuario = _usuarioRep.GetSingle(int.Parse(HttpContext.Current.User.Identity.GetUserId())); enderecoViewModel.PessoaId = usuario.PessoaId; Endereco novoEndereco = new Endereco() { UsuarioCriacao = usuario, DtCriacao = DateTime.Now, PessoaId = enderecoViewModel.PessoaId, EstadoId = enderecoViewModel.EstadoId, CidadeId = enderecoViewModel.CidadeId, BairroId = enderecoViewModel.BairroId, LogradouroId = enderecoViewModel.LogradouroId, Numero = enderecoViewModel.NumEndereco, Complemento = enderecoViewModel.Complemento ?? string.Empty, DescEndereco = enderecoViewModel.Endereco, Cep = enderecoViewModel.Cep, Ativo = enderecoViewModel.Ativo, EnderecoPadrao = enderecoViewModel.EnderecoPadrao, Referencia = enderecoViewModel.Referencia ?? string.Empty }; _enderecoRep.Add(novoEndereco); _unitOfWork.Commit(); foreach (var itemPeriodo in enderecoViewModel.PeriodoEntrega) { HorasEntregaMembro horarioEntrega = new HorasEntregaMembro() { UsuarioCriacao = usuario, DtCriacao = DateTime.Now, PeriodoId = itemPeriodo.Id, EnderecoId = novoEndereco.Id, DescHorarioEntrega = enderecoViewModel.DescHorarioEntrega }; _horarioEntregaMembroRep.Add(horarioEntrega); } _unitOfWork.Commit(); // Update view model enderecoViewModel = Mapper.Map <Endereco, EnderecoViewModel>(novoEndereco); response = request.CreateResponse(HttpStatusCode.Created, enderecoViewModel); } } return response; })); }