public HttpResponseMessage Inserir(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(int.Parse(HttpContext.Current.User.Identity.GetUserId())); 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(); 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(); 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 Atualizar(HttpRequestMessage request, EnderecoViewModel enderecoViewModel) { return(CreateHttpResponse(request, () => { HttpResponseMessage response = null; HorasEntregaMembro horasEntrega = new HorasEntregaMembro(); List <PeriodoEntrega> listaPeriodo = new List <PeriodoEntrega>(); if (!ModelState.IsValid) { response = request.CreateResponse(HttpStatusCode.BadRequest, ModelState.Keys.SelectMany(k => ModelState[k].Errors) .Select(m => m.ErrorMessage).ToArray()); } else { Endereco _endereco = _enderecoRep.GetSingle(enderecoViewModel.Id); var usuario = new Usuario(); if (HttpContext.Current.User.Identity.GetUserId() != null) { usuario = _usuarioRep.GetSingle(int.Parse(HttpContext.Current.User.Identity.GetUserId())); } else { usuario = _usuarioRep.GetSingle(1); } #region Atualiza Período de Entrega var pegarTodosHorariosEntrega = _horarioEntregaMembroRep.GetAll().Where(x => x.EnderecoId == enderecoViewModel.Id).ToList(); if (pegarTodosHorariosEntrega.Count > 0) { _horarioEntregaMembroRep.DeleteAll(pegarTodosHorariosEntrega); _unitOfWork.Commit(); foreach (var periodo in enderecoViewModel.PeriodoEntrega) { horasEntrega.UsuarioCriacao = usuario; horasEntrega.DtCriacao = DateTime.Now; horasEntrega.PeriodoId = periodo.Id; horasEntrega.EnderecoId = enderecoViewModel.Id; horasEntrega.DescHorarioEntrega = enderecoViewModel.DescHorarioEntrega; horasEntrega.Ativo = true; _horarioEntregaMembroRep.Add(horasEntrega); _unitOfWork.Commit(); } } else { foreach (var periodo in enderecoViewModel.PeriodoEntrega) { horasEntrega.UsuarioCriacao = usuario; horasEntrega.DtCriacao = DateTime.Now; horasEntrega.PeriodoId = periodo.Id; horasEntrega.EnderecoId = enderecoViewModel.Id; horasEntrega.DescHorarioEntrega = enderecoViewModel.DescHorarioEntrega; horasEntrega.Ativo = true; _horarioEntregaMembroRep.Add(horasEntrega); _unitOfWork.Commit(); } } #endregion _endereco.AtualizarEndereco(enderecoViewModel, usuario); _unitOfWork.Commit(); // Update view model // enderecoViewModel = Mapper.Map<Endereco, EnderecoViewModel>(_endereco); // enderecoViewModel.PeriodoEntrega.Clear(); // enderecoViewModel.PeriodoEntrega.AddRange(listaPeriodo); response = request.CreateResponse(HttpStatusCode.OK, 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; })); }