public ActionResult Incluir(PedidoModel model) { //Se não tiver login, encaminhar para a tela de login if (string.IsNullOrWhiteSpace(SessaoUsuario.SessaoLogin.Identificacao)) { return(RedirectToAction("Login", "Usuario")); } ModelState.Where(p => p.Key.Contains("Entrega.ClienteEndereco.")).Select(p => p.Key).ToList().ForEach(p => ModelState.Remove(p)); ModelState.Where(p => p.Key.Contains("Cliente.")).Select(p => p.Key).ToList().ForEach(p => ModelState.Remove(p)); ModelState.Where(p => p.Key.Contains("ListaItens")).Select(p => p.Key).ToList().ForEach(p => ModelState.Remove(p)); //Validar a model recebida if (!ModelState.IsValid) { return(View(model)); } string mensagemErro = ""; if (!PrepararCadastros(ref model, ref mensagemErro)) { ModelState.AddModelError("", mensagemErro); return(View(model)); } //Converter para DTO PedidoDto pedidoDto = new PedidoDto(); if (!model.ConverterModelParaDto(ref pedidoDto, ref mensagemErro)) { ModelState.AddModelError("", $"Erro ao converter para Dto: {mensagemErro}"); return(View(model)); } pedidoDto.Id = Guid.NewGuid(); //Preparar requisição e retorno RetornoDto retorno = new RetornoDto(); RequisicaoEntidadeDto <PedidoDto> requisicaoDto = new RequisicaoEntidadeDto <PedidoDto>() { EntidadeDto = pedidoDto, Identificacao = SessaoUsuario.SessaoLogin.Identificacao, IdUsuario = SessaoUsuario.SessaoLogin.IdUsuario }; //Consumir o serviço PedidoBll pedidoBll = new PedidoBll(true); pedidoBll.Incluir(requisicaoDto, ref retorno); //Verificar o retorno if (retorno.Retorno == false) { //Se houver erro, exibir na tela de inclusão ModelState.AddModelError("", retorno.Mensagem); return(View(model)); } model.DataInclusao = DateTime.Now.AddHours(4); string impressao = ""; if (MontarImpressaoPedido(model, ref impressao)) { TempData["Impressao"] = impressao; } TempData["Retorno"] = "INCLUIDO"; //Retornar para index return(RedirectToAction("Index")); }
public ActionResult Editar(PedidoModel model) { //Se não tiver login, encaminhar para a tela de login if (string.IsNullOrWhiteSpace(SessaoUsuario.SessaoLogin.Identificacao)) { return(RedirectToAction("Login", "Usuario")); } ModelState.Where(p => p.Key.Contains("Entrega.ClienteEndereco.")).Select(p => p.Key).ToList().ForEach(p => ModelState.Remove(p)); ModelState.Where(p => p.Key.Contains("Cliente.")).Select(p => p.Key).ToList().ForEach(p => ModelState.Remove(p)); ModelState.Where(p => p.Key.Contains("ListaItens")).Select(p => p.Key).ToList().ForEach(p => ModelState.Remove(p)); //Valida a entidade recebida if (!ModelState.IsValid) { return(View(model)); } string mensagemErro = ""; if (!PrepararCadastros(ref model, ref mensagemErro)) { ModelState.AddModelError("", mensagemErro); return(View(model)); } //Converte para DTO PedidoDto pedidoDto = new PedidoDto(); if (!model.ConverterModelParaDto(ref pedidoDto, ref mensagemErro)) { ViewBag.MensagemErro = mensagemErro; return(View("Erro")); } //Preparar requisição e retorno RetornoDto retorno = new RetornoDto(); RequisicaoEntidadeDto <PedidoDto> requisicaoDto = new RequisicaoEntidadeDto <PedidoDto>() { EntidadeDto = pedidoDto, Identificacao = SessaoUsuario.SessaoLogin.Identificacao, IdUsuario = SessaoUsuario.SessaoLogin.IdUsuario }; //Consumir o serviço PedidoBll pedidoBll = new PedidoBll(true); pedidoBll.Editar(requisicaoDto, ref retorno); //Tratar o retorno if (retorno.Retorno == false) { ModelState.AddModelError("", retorno.Mensagem); return(View(model)); } TempData["Retorno"] = "ALTERADO"; //Voltar para o visualizar do pedido return(RedirectToAction("Index")); }