public ActionResult Detalhes(int id)
        {
            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.MensagemDetalhesParceiro = null;

                #endregion

                DadosBrindeParceiro dadosBrindeParceiro = new DadosBrindeParceiro();

                //busca todos os brindes do parceiro
                retornoRequest = rest.Get(string.Format("/BrindeParceiro/ListarPorParceiro/{0}/{1}", id, usuarioLogado.IdLoja));

                if (retornoRequest.HttpStatusCode == HttpStatusCode.NoContent)
                {
                    //ViewBag.MensagemDetalhesParceiro = "nenhum brinde cadastrado";
                }
                else if (retornoRequest.HttpStatusCode != HttpStatusCode.OK)
                {
                    ViewBag.MensagemDetalhesParceiro = "não foi possível exibir detalhes do parceiro. por favor, tente atualizar a página ou entre em contato com o administrador do sistema...";
                    return(View());
                }

                string jsonRetorno = retornoRequest.objeto.ToString();
                dadosBrindeParceiro = JsonConvert.DeserializeObject <DadosBrindeParceiro>(jsonRetorno);

                Session["IdParceiro"] = id;

                return(View(dadosBrindeParceiro));
            }
            catch (Exception)
            {
                ViewBag.MensagemDetalhesParceiro = "não foi possível exibir detalhes do parceiro. por favor, tente atualizar a página ou entre em contato com o administrador do sistema...";
                return(View());
            }
        }
        public ActionResult AdicionarBrindeParceiro(DadosBrindeParceiro dadosBrindeParceiro)
        {
            BrindeParceiro brindeParceiro = new BrindeParceiro();

            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.MensagemErroCadBrindeParceiro = null;

                #endregion

                #region validação dos campos

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

                #endregion

                #region cadastra o brinde para o parceiro

                if (dadosBrindeParceiro.IdBrinde == 0)
                {
                    return(null);
                }

                brindeParceiro.IdBrinde   = dadosBrindeParceiro.IdBrinde;
                brindeParceiro.IdLoja     = usuarioLogado.IdLoja;
                brindeParceiro.IdParceiro = dadosBrindeParceiro.IdParceiro;
                brindeParceiro.Ativo      = dadosBrindeParceiro.Ativo;

                string urlPost = "/BrindeParceiro/Adicionar";
                retornoRequest = rest.Post(urlPost, brindeParceiro);

                //se o brinde for cadastrado, direciona para a tela de visualização de brindes do parceiro
                if (retornoRequest.HttpStatusCode == HttpStatusCode.Created)
                {
                    return(RedirectToAction("Detalhes", "Parceiro", new { id = brindeParceiro.IdParceiro }));
                }

                ViewBag.MensagemErroCadBrindeParceiro = "não foi possível cadastrar o brinde. por favor, tente novamente";
                return(View("AdicionarBrinde", brindeParceiro));

                #endregion
            }
            catch (Exception)
            {
                ViewBag.MensagemErroCadBrindeParceiro = "não foi possível cadastrar o brinde. por favor, tente novamente";
                return(View("AdicionarBrinde", brindeParceiro));
            }
        }
        public ActionResult AdicionarBrinde(int id)
        {
            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["MensagemCarregamentoAdicionarBrinde"] = null;

                #endregion

                #region busca os brindes

                List <Brinde>       listaBrindes        = new List <Brinde>();
                DadosBrindeParceiro dadosBrindeParceiro = new DadosBrindeParceiro();
                BrindeParceiro      brindeParceiro      = new BrindeParceiro();

                //busca todos os produtos brindes da loja
                retornoRequest = rest.Get(string.Format("/Brinde/ListarPorLoja/{0}", usuarioLogado.IdLoja));

                //se não encontrar produtos adicionais
                if (retornoRequest.HttpStatusCode == HttpStatusCode.NoContent)
                {
                    Session["MensagemCarregamentoAdicionarBrinde"] = "é necessário cadastrar um produto adicional antes de atrela-lo ao produto";
                    return(RedirectToAction("Detalhes", "Parceiro", new { id = id }));
                }

                if (retornoRequest.HttpStatusCode != HttpStatusCode.OK)
                {
                    Session["MensagemCarregamentoAdicionarBrinde"] = "não foi possível carregar os brindes. por favor, tente novamente ou entre em contato com o administrador do sistema.";
                    return(RedirectToAction("Detalhes", "Parceiro", new { id = id }));
                }

                string json = retornoRequest.objeto.ToString();

                listaBrindes = JsonConvert.DeserializeObject <List <Brinde> >(json);

                dadosBrindeParceiro.Brindes    = listaBrindes.Where(p => p.Ativo).ToList();
                dadosBrindeParceiro.IdParceiro = id;

                #endregion

                return(View(dadosBrindeParceiro));
            }
            catch (Exception)
            {
                Session["MensagemCarregamentoAdicionarBrinde"] = "não foi possível carregar os brindes. por favor, tente novamente ou entre em contato com o administrador do sistema.";
                return(RedirectToAction("Detalhes", "Parceiro", new { id = id }));
            }
        }