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"));
            }
        }