private Resultado <IndexSupermercadoViewModel> CarregarModel(int?pagina, IndexSupermercadoViewModel.TipoOperacao operacao)
        {
            var resultado = new Resultado <IndexSupermercadoViewModel>(true);

            try
            {
                pagina = pagina ?? 1;
                var resultadoListar = OperacionalFacade.ListarTodosSupermercados(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 IndexSupermercadoViewModel()
                    {
                        Pagina             = pagina.Value,
                        TotalPagina        = totalPagina,
                        ListaSupermercado  = lista,
                        Operacao           = operacao,
                        SupermercadoEditar = new Supermercado(),
                        TamanhoPagina      = c_tamanhoPagina
                    };
                    resultado.Retorno = model;
                }
            }
            catch (Exception ex)
            {
                resultado = new Resultado <IndexSupermercadoViewModel>(ex);
            }
            return(resultado);
        }
        public ActionResult Salvar(IndexSupermercadoViewModel model)
        {
            var resultado    = new Resultado(true);
            var supermercado = model.SupermercadoEditar;

            if (model.Operacao == IndexSupermercadoViewModel.TipoOperacao.Incluir)
            {
                resultado = OperacionalFacade.IncluirSupermercado(supermercado);
            }
            else
            {
                resultado = OperacionalFacade.AlterarSupermercado(supermercado);
            }

            IndexSupermercadoViewModel.TipoOperacao operacao;
            if (resultado.Sucesso)
            {
                operacao = IndexSupermercadoViewModel.TipoOperacao.Listar;
            }
            else
            {
                operacao = model.Operacao;
            }

            var resultadoCarregar = CarregarModel(model.Pagina, operacao);
            var newModel          = resultadoCarregar.Retorno;

            if (!resultado.Sucesso)
            {
                ModelState.AddModelResultoErro(resultado, "SupermercadoEditar");
                newModel.SupermercadoEditar = model.SupermercadoEditar;
                newModel.IsValid            = resultado.Sucesso;
                return(View("Index", newModel));
            }
            else
            {
                return(View("Index"));
            }
        }