public ActionResult DesativarItem(int id)
        {
            #region validacao usuario logado

            //se a sessão de usuário não estiver preenchida, direciona para a tela de login
            if (Session["UsuarioLogado"] == null)
            {
                return(RedirectToAction("Index", "Login"));
            }

            //recebe o usuário logado
            usuarioLogado = (UsuarioLoja)(Session["UsuarioLogado"]);

            #endregion

            DadosProdutoAdicionalItem item = new DadosProdutoAdicionalItem()
            {
                Id     = id,
                IdLoja = usuarioLogado.IdLoja,
                Ativo  = false
            };

            string urlPost = "/ProdutoAdicional/DesativarItem";
            retornoRequest = rest.Post(urlPost, item);
            return(Json(new { success = true }, JsonRequestBehavior.AllowGet));
        }
        public ActionResult EditarItemProdutoAdicional(DadosProdutoAdicionalItem item)
        {
            #region validacao usuario logado

            //se a sessão de usuário não estiver preenchida, direciona para a tela de login
            if (Session["UsuarioLogado"] == null)
            {
                return(RedirectToAction("Index", "Login"));
            }

            //recebe o usuário logado
            usuarioLogado = (UsuarioLoja)(Session["UsuarioLogado"]);

            #endregion

            #region limpa as viewbags de mensagem

            ViewBag.MensagemEditarProdutoAdicionalItem = null;

            #endregion

            #region validação dos campos

            //validação dos campos
            if (!ModelState.IsValid)
            {
                return(View("EditarItem", item));
            }

            #endregion

            //variável para armazenar o retorno da requisição
            DadosRequisicaoRest retornoRequest = new DadosRequisicaoRest();

            try
            {
                string urlPost = string.Format("/ProdutoAdicional/AtualizarItem");

                //seta a loja
                item.IdLoja = usuarioLogado.IdLoja;

                retornoRequest = rest.Post(urlPost, item);

                //se o produto adicional não for atualizado
                if (retornoRequest.HttpStatusCode != HttpStatusCode.OK)
                {
                    ViewBag.MensagemEditarProdutoAdicionalItem = "não foi possível atualizar o item. por favor, tente novamente";
                    return(View("EditarItem", item));
                }

                //se o item for atualizado, direciona para a tela de visualização de itens do produto adicional
                return(RedirectToAction("Detalhes", "ProdutoAdicional", new { id = item.IdProdutoAdicional }));
            }
            catch (Exception)
            {
                ViewBag.MensagemEditarProdutoAdicionalItem = "não foi possível atualizar o item. por favor, tente novamente";
                return(View("EditarItem", item));
            }
        }
        public ActionResult AdicionarItemProdutoAdicional(DadosProdutoAdicionalItem item)
        {
            try
            {
                #region validacao usuario logado

                //se a sessão de usuário não estiver preenchida, direciona para a tela de login
                if (Session["UsuarioLogado"] == null)
                {
                    return(RedirectToAction("Index", "Login"));
                }

                //recebe o usuário logado
                usuarioLogado = (UsuarioLoja)(Session["UsuarioLogado"]);

                #endregion

                #region limpa as viewbags de mensagem

                ViewBag.MensagemErroCadProdAdicionalItem = null;

                #endregion

                #region validação dos campos

                //validação dos campos
                if (!ModelState.IsValid)
                {
                    return(View("AdicionarItem", item));
                }

                #endregion

                #region adiciona o produto adicional

                string urlPost = "/ProdutoAdicional/AdicionarItem";

                //seta a loja
                item.IdLoja = usuarioLogado.IdLoja;

                retornoRequest = rest.Post(urlPost, item);

                //se o item for cadastrado, direciona para a tela de visualização de itens do produto adicional
                if (retornoRequest.HttpStatusCode == HttpStatusCode.Created)
                {
                    return(RedirectToAction("Detalhes", "ProdutoAdicional", new { id = item.IdProdutoAdicional }));
                }

                ViewBag.MensagemErroCadProdAdicionalItem = "não foi possível cadastrar o item. por favor, tente novamente";
                return(View("AdicionarItem", item));

                #endregion
            }
            catch (Exception)
            {
                ViewBag.MensagemErroCadProdAdicionalItem = "não foi possível cadastrar o item. por favor, tente novamente";
                return(View("AdicionarItem", item));
            }
        }
        public ActionResult AdicionarItem(int id)
        {
            DadosProdutoAdicionalItem item = new DadosProdutoAdicionalItem()
            {
                IdProdutoAdicional = id
            };

            return(View(item));
        }
        public ActionResult EditarItem(int id)
        {
            //busca o id do prod adicional
            Int32.TryParse(Session["IdProdutoAdicional"].ToString(), out int idProdutoAdicional);
            Session["IdProdutoAdicional"] = null;

            try
            {
                #region validacao usuario logado

                //se a sessão de usuário não estiver preenchida, direciona para a tela de login
                if (Session["UsuarioLogado"] == null)
                {
                    return(RedirectToAction("Index", "Login"));
                }

                //recebe o usuário logado
                usuarioLogado = (UsuarioLoja)(Session["UsuarioLogado"]);

                #endregion

                #region limpa as viewbags de mensagem

                Session["MensagemCarregamentoItem"] = null;

                #endregion

                #region busca o item

                DadosProdutoAdicionalItem item = new DadosProdutoAdicionalItem();

                //busca os dados do produto adicional
                retornoRequest = rest.Get(string.Format("/ProdutoAdicional/Item/{0}/{1}", id, usuarioLogado.IdLoja));

                if (retornoRequest.HttpStatusCode != HttpStatusCode.OK)
                {
                    Session["MensagemCarregamentoItem"] = "não foi possível carregar os dados do item. por favor, tente atualizar a página ou entre em contato com o administrador do sistema...";
                    return(RedirectToAction("Detalhes", "ProdutoAdicional", new { id = idProdutoAdicional }));
                }

                string jsonRetorno = retornoRequest.objeto.ToString();

                item = JsonConvert.DeserializeObject <DadosProdutoAdicionalItem>(jsonRetorno);

                #endregion

                return(View(item));
            }
            catch (Exception)
            {
                Session["MensagemCarregamentoItem"] = "não foi possível carregar os dados do item. por favor, tente atualizar a página ou entre em contato com o administrador do sistema...";
                return(RedirectToAction("Detalhes", "ProdutoAdicional", new { id = idProdutoAdicional }));
            }
        }