private Resultado <IndexProdutoViewModel> CarregarModel(int?pagina, IndexProdutoViewModel.TipoOperacao operacao) { var resultado = new Resultado <IndexProdutoViewModel>(true); try { pagina = pagina ?? 1; var resultadoListar = OperacionalFacade.ListarTodosProduto(pagina.Value, c_tamanhoPagina); resultado += resultadoListar; if (resultado.Sucesso) { var lista = resultadoListar.Retorno.Item1; var total = resultadoListar.Retorno.Item2; var totalPagina = (int)Math.Ceiling((float)total / c_tamanhoPagina); var model = new IndexProdutoViewModel() { Pagina = pagina.Value, TotalPagina = totalPagina, ListaProduto = lista, Operacao = operacao, ProdutoEditar = new Produto(), TamanhoPagina = c_tamanhoPagina }; resultado.Retorno = model; } } catch (Exception ex) { resultado = new Resultado <IndexProdutoViewModel>(ex); } return(resultado); }
public ActionResult Salvar(IndexProdutoViewModel model) { var resultado = new Resultado(true); var produto = model.ProdutoEditar; if (model.Operacao == IndexProdutoViewModel.TipoOperacao.Inserir) { resultado = OperacionalFacade.IncluirProduto(produto); } else { resultado = OperacionalFacade.AlterarProduto(produto); } IndexProdutoViewModel.TipoOperacao operacao; if (resultado.Sucesso) { operacao = IndexProdutoViewModel.TipoOperacao.Listar; } else { operacao = model.Operacao; } var resultadoCarregar = CarregarModel(model.Pagina, operacao); var newModel = resultadoCarregar.Retorno; if (!resultado.Sucesso) { ModelState.AddModelResultoErro(resultado, "ProdutoEditar"); newModel.ProdutoEditar = model.ProdutoEditar; newModel.IsValid = resultado.Sucesso; return(View("Index", newModel)); } else { return(View("Index")); } }