public ActionResult ReativarCampanha(Int32 id)
        {
            // Prepara view
            if ((String)Session["Ativa"] == null)
            {
                return(RedirectToAction("Login", "ControleAcesso"));
            }
            CAMPANHA          item = baseApp.GetItemById(id);
            CampanhaViewModel vm   = Mapper.Map <CAMPANHA, CampanhaViewModel>(item);

            return(View(vm));
        }
        public ActionResult ExcluirCampanhaGrupo(Int32 id)
        {
            // Verifica se tem usuario logado
            if ((String)Session["Ativa"] == null)
            {
                return(RedirectToAction("Login", "ControleAcesso"));
            }
            Int32   idAss         = (Int32)Session["IdAssinante"];
            USUARIO usuarioLogado = (USUARIO)Session["UserCredentials"];

            CAMPANHA       rot   = (CAMPANHA)Session["Campanha"];
            CAMPANHA_GRUPO rl    = cgApp.GetItemById(id);
            Int32          volta = cgApp.ValidateDelete(rl);

            return(RedirectToAction("VoltarAnexoCampanha"));
        }
        public ActionResult IncluirCampanha(CampanhaViewModel vm)
        {
            if ((String)Session["Ativa"] == null)
            {
                return(RedirectToAction("Login", "ControleAcesso"));
            }
            Int32 idAss = (Int32)Session["IdAssinante"];

            if (ModelState.IsValid)
            {
                try
                {
                    // Executa a operação
                    CAMPANHA item          = Mapper.Map <CampanhaViewModel, CAMPANHA>(vm);
                    USUARIO  usuarioLogado = (USUARIO)Session["UserCredentials"];
                    Int32    volta         = baseApp.ValidateCreate(item, usuarioLogado, idAss);

                    // Verifica retorno
                    if (volta == 1)
                    {
                        Session["MensCampanha"] = 1;
                        ModelState.AddModelError("", SMS_Resource.ResourceManager.GetString("M0031", CultureInfo.CurrentCulture));
                        return(View(vm));
                    }

                    // Sucesso
                    listaMasterAss              = new List <CAMPANHA>();
                    Session["ListaCampanha"]    = null;
                    Session["VoltaCampanha"]    = 1;
                    Session["IdAssinanteVolta"] = item.ASSI_CD_ID;
                    Session["Campanha"]         = item;
                    Session["MensCampanha"]     = 0;
                    Session["IdVolta"]          = item.CAMP_CD_ID;
                    return(RedirectToAction("EditarCampanha", new { id = item.CAMP_CD_ID }));
                }
                catch (Exception ex)
                {
                    ViewBag.Message = ex.Message;
                    return(View(vm));
                }
            }
            else
            {
                return(View(vm));
            }
        }
        public ActionResult IncluirCampanha()
        {
            // Prepara listas
            if ((String)Session["Ativa"] == null)
            {
                return(RedirectToAction("Login", "ControleAcesso"));
            }
            Int32 idAss = (Int32)Session["IdAssinante"];

            // Prepara view
            USUARIO           usuario = (USUARIO)Session["UserCredentials"];
            CAMPANHA          item    = new CAMPANHA();
            CampanhaViewModel vm      = Mapper.Map <CAMPANHA, CampanhaViewModel>(item);

            vm.CAMP_IN_ATIVO  = 1;
            vm.ASSI_CD_ID     = idAss;
            vm.CAMP_DT_INICIO = DateTime.Today.Date;
            return(View(vm));
        }
        public ActionResult IncluirCampanhaContato(CampanhaViewModel vm)
        {
            try
            {
                // Executa a operação
                if ((String)Session["Ativa"] == null)
                {
                    return(RedirectToAction("Login", "ControleAcesso"));
                }
                Int32    idAss         = (Int32)Session["IdAssinante"];
                USUARIO  usuarioLogado = (USUARIO)Session["UserCredentials"];
                CAMPANHA item          = Mapper.Map <CampanhaViewModel, CAMPANHA>(vm);

                // verifica quantidade de contatos na campanha
                if (item.CAMPANHA_CONTATO.Count >= 200)
                {
                    Session["MensCampanha"] = 3;
                    ModelState.AddModelError("", SMS_Resource.ResourceManager.GetString("M0047", CultureInfo.CurrentCulture));
                    return(RedirectToAction("VoltarAnexoGrupo"));
                }
                Int32 volta = baseApp.IncluirCampanhaContato(item, usuarioLogado, idAss);

                // Verifica retorno
                if (volta == 1)
                {
                    Session["MensCampanha"] = 1;
                    ModelState.AddModelError("", SMS_Resource.ResourceManager.GetString("M0032", CultureInfo.CurrentCulture));
                    return(RedirectToAction("VoltarAnexoCampanha"));
                }

                // Sucesso
                return(RedirectToAction("VoltarAnexoCampanha"));
            }
            catch (Exception ex)
            {
                ViewBag.Message = ex.Message;
                return(RedirectToAction("VoltarAnexoCampanha"));
            }
        }
        public ActionResult EditarCampanha(CampanhaViewModel vm)
        {
            if ((String)Session["Ativa"] == null)
            {
                return(RedirectToAction("Login", "ControleAcesso"));
            }
            Int32 idAss = (Int32)Session["IdAssinante"];

            ViewBag.Contatos = new SelectList(conApp.GetAllItens(idAss), "CONT_CD_ID", "CONT_NM_NOME");
            ViewBag.Grupos   = new SelectList(gruApp.GetAllItens(idAss), "GRUP_CD_ID", "GRUP_NM_NOME");
            if (ModelState.IsValid)
            {
                try
                {
                    // Executa a operação
                    USUARIO  usuarioLogado = (USUARIO)Session["UserCredentials"];
                    CAMPANHA item          = Mapper.Map <CampanhaViewModel, CAMPANHA>(vm);
                    Int32    volta         = baseApp.ValidateEdit(item, objetoAssAntes, usuarioLogado, idAss);

                    // Sucesso
                    listaMasterAss           = new List <CAMPANHA>();
                    Session["ListaCampanha"] = null;
                    Session["MensCampanha"]  = 0;
                    return(RedirectToAction("MontarTelaCampanha"));
                }
                catch (Exception ex)
                {
                    ViewBag.Message = ex.Message;
                    return(View(vm));
                }
            }
            else
            {
                return(View(vm));
            }
        }
Exemplo n.º 7
0
        public String ValidateCreate(MENSAGEM item, USUARIO usuario, Int32?idAss)
        {
            try
            {
                // Verifica existencia prévia
                if (_baseService.CheckExist(item, idAss) != null)
                {
                    return("1");
                }

                // Criticas
                if (item.CONT_CD_ID == null & item.CAMP_CD_ID == null & item.GRUP_CD_ID == null)
                {
                    return("2");
                }
                if (item.TEMP_CD_ID == null & item.MENS_TX_TEXTO == null)
                {
                    return("3");
                }

                // Completa objeto
                item.MENS_IN_ATIVO   = 1;
                item.MENS_DT_DATA    = DateTime.Today.Date;
                item.MENS_DT_ENVIO   = null;
                item.MENS_IN_ENVIADA = 0;
                item.ASSI_CD_ID      = idAss.Value;
                item.USUA_CD_ID      = usuario.USUA_CD_ID;
                if (item.MENS_NM_NOME == null)
                {
                    item.MENS_NM_NOME = "-";
                }

                // Monta Log
                LOG log = new LOG
                {
                    LOG_DT_DATA     = DateTime.Now,
                    ASSI_CD_ID      = idAss.Value,
                    USUA_CD_ID      = usuario.USUA_CD_ID,
                    LOG_NM_OPERACAO = "AddMENS",
                    LOG_IN_ATIVO    = 1,
                    LOG_TX_REGISTRO = Serialization.SerializeJSON <MENSAGEM>(item)
                };

                // Persiste
                Int32 volta = _baseService.Create(item, log, idAss);

                // Monta lista de envio
                List <CONTATO> lista    = new List <CONTATO>();
                String         campanha = null;
                if (item.CONT_CD_ID != null)
                {
                    CONTATO ct = _ctService.GetItemById(item.CONT_CD_ID.Value);
                    lista.Add(ct);
                }
                if (item.GRUP_CD_ID != null)
                {
                    GRUPO gr = _grService.GetItemById(item.GRUP_CD_ID.Value);
                    foreach (var obj in gr.GRUPO_CONTATO)
                    {
                        lista.Add(obj.CONTATO);
                    }
                }
                if (item.CAMP_CD_ID != null)
                {
                    CAMPANHA cp = _cpService.GetItemById(item.CAMP_CD_ID.Value);
                    foreach (var obj in cp.CAMPANHA_CONTATO)
                    {
                        lista.Add(obj.CONTATO);
                    }
                    campanha = cp.CAMP_NM_NOME;
                }
                else
                {
                    if (item.MENS_NM_CAMPANHA != null)
                    {
                        campanha = item.MENS_NM_CAMPANHA;
                    }
                }

                // Monta token
                CONFIGURACAO conf      = _conService.GetItemById(1);
                String       text      = conf.CONF_NM_USER_SMS + ":" + conf.CONF_NM_SENHA_SMS;
                byte[]       textBytes = Encoding.UTF8.GetBytes(text);
                String       token     = Convert.ToBase64String(textBytes);
                String       auth      = "Basic " + token;

                // Monta routing
                String routing = item.MENS_IN_TIPO_SMS.ToString();

                // Monta texto
                String texto = String.Empty;
                if (item.TEMPLATE != null)
                {
                    texto = item.TEMPLATE.TEMP_TX_TEXTO;
                }
                else
                {
                    texto = item.MENS_TX_TEXTO;
                }

                // inicia processo
                List <String> resposta = new List <string>();
                WebRequest    request  = WebRequest.Create("https://api.smsfire.com.br/v1/sms/send");
                request.Headers["Authorization"] = auth;
                request.Method      = "POST";
                request.ContentType = "application/json";

                // Monta destinatarios
                String listaDest = String.Empty;
                if (lista.Count > 0)
                {
                    if (lista.Count <= 200)
                    {
                        foreach (var contato in lista)
                        {
                            if (listaDest.Length == 0)
                            {
                                listaDest += contato.CONT_NR_WHATSAPP + "\"";
                            }
                            else
                            {
                                listaDest += ",\"" + contato.CONT_NR_WHATSAPP + "\"";
                            }
                        }
                    }
                    else
                    {
                        return("5");
                    }
                }
                else
                {
                    return("4");
                }

                // Agendamento
                String agenda = null;
                if (item.MENS_DT_AGENDA != null)
                {
                    agenda = item.MENS_DT_AGENDA.Value.ToString("yyyy-MM-dd HH:mm:ss");
                    //agenda = item.MENS_DT_AGENDA.Value.ToString();
                }

                // Processa lista
                String responseFromServer = null;
                using (var streamWriter = new StreamWriter(request.GetRequestStream()))
                {
                    String json = null;
                    if (agenda == null)
                    {
                        json = "{\"to\":[\"" + listaDest + "]," +
                               "\"from\":\"smsfire\", " +
                               "\"campaignName\":\"" + campanha + "\", " +
                               "\"text\":\"" + texto + "\"} ";
                    }
                    else
                    {
                        json = "{\"to\":[\"" + listaDest + "]," +
                               "\"from\":\"smsfire\", " +
                               "\"campaignName\":\"" + campanha + "\", " +
                               "\"schedule\":\"" + agenda + "\", " +
                               "\"text\":\"" + texto + "\"} ";
                    }

                    streamWriter.Write(json);
                    streamWriter.Close();
                    streamWriter.Dispose();
                }

                WebResponse response = request.GetResponse();
                resposta.Add(response.ToString());

                Stream       dataStream = response.GetResponseStream();
                StreamReader reader     = new StreamReader(dataStream);
                responseFromServer = reader.ReadToEnd();
                resposta.Add(responseFromServer);

                // Completa objeto
                item.MENS_DT_ENVIO    = DateTime.Today.Date;
                item.MENS_IN_ENVIADA  = 1;
                item.MENS_TX_RETORNOS = responseFromServer.ToString();
                Int32 volta1 = _baseService.Create(item, log, idAss);

                reader.Close();
                response.Close();
                return(responseFromServer);
            }
            catch (Exception ex)
            {
                throw;
            }
        }