public ActionResult FiltrarAniversariante(CONTATO item)
        {
            try
            {
                // Executa a operação
                if ((String)Session["Ativa"] == null)
                {
                    return(RedirectToAction("Login", "ControleAcesso"));
                }
                List <CONTATO> listaObj = new List <CONTATO>();
                Int32          idAss    = (Int32)Session["IdAssinante"];
                Int32          volta    = baseApp.ExecuteFilter(item.CONT_NM_NOME, item.ORIG_CD_ID, item.CACO_CD_ID, item.CONT_NM_CARGO, item.PROF_CD_ID, item.CACO_NM_CIDADE, item.UF_CD_ID, item.CONT_DT_NASCIMENTO, item.CLUB_CD_ID, idAss, out listaObj);

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

                // Sucesso
                Session["MensContato"]  = 0;
                listaMasterAss          = listaObj;
                Session["ListaContato"] = listaObj;
                return(RedirectToAction("MontarTelaAniversariantes"));
            }
            catch (Exception ex)
            {
                ViewBag.Message = ex.Message;
                return(RedirectToAction("MontarTelaAniversariantes"));
            }
        }
        public ActionResult ReativarContato(ContatoViewModel vm)
        {
            if ((String)Session["Ativa"] == null)
            {
                return(RedirectToAction("Login", "ControleAcesso"));
            }
            Int32 idAss = (Int32)Session["IdAssinante"];

            try
            {
                // Executa a operação
                USUARIO usuarioLogado = (USUARIO)Session["UserCredentials"];
                CONTATO item          = Mapper.Map <ContatoViewModel, CONTATO>(vm);
                Int32   volta         = baseApp.ValidateReativar(item, usuarioLogado, idAss);

                // Sucesso
                listaMasterAss          = new List <CONTATO>();
                Session["ListaContato"] = null;
                Session["MensContato"]  = 0;
                return(RedirectToAction("MontarTelaContato"));
            }
            catch (Exception ex)
            {
                ViewBag.Message = ex.Message;
                return(View(vm));
            }
        }
        public ActionResult ExcluirContato(ContatoViewModel vm)
        {
            if ((String)Session["Ativa"] == null)
            {
                return(RedirectToAction("Login", "ControleAcesso"));
            }
            Int32 idAss = (Int32)Session["IdAssinante"];

            try
            {
                // Executa a operação
                USUARIO usuarioLogado = (USUARIO)Session["UserCredentials"];
                CONTATO item          = Mapper.Map <ContatoViewModel, CONTATO>(vm);
                Int32   volta         = baseApp.ValidateDelete(item, usuarioLogado, idAss);

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

                // Sucesso
                listaMasterAss          = new List <CONTATO>();
                Session["ListaContato"] = null;
                Session["MensContato"]  = 0;
                return(RedirectToAction("MontarTelaContato"));
            }
            catch (Exception ex)
            {
                ViewBag.Message = ex.Message;
                return(View(vm));
            }
        }
        public ActionResult ReativarContato(Int32 id)
        {
            // Prepara view
            if ((String)Session["Ativa"] == null)
            {
                return(RedirectToAction("Login", "ControleAcesso"));
            }
            CONTATO          item = baseApp.GetItemById(id);
            ContatoViewModel vm   = Mapper.Map <CONTATO, ContatoViewModel>(item);

            return(View(vm));
        }
        public ActionResult IncluirContato(ContatoViewModel vm)
        {
            if ((String)Session["Ativa"] == null)
            {
                return(RedirectToAction("Login", "ControleAcesso"));
            }
            ViewBag.Origens    = new SelectList((List <ORIGEM>)Session["Origens"], "ORIG_CD_ID", "ORIG_NM_NOME");
            ViewBag.Profissoes = new SelectList((List <PROFISSAO>)Session["Profissoes"], "PROF_CD_ID", "PROF_NM_NOME");
            ViewBag.Clubes     = new SelectList((List <CLUBE>)Session["Clubes"], "CLUB_CD_ID", "CLUB_NM_NOME");
            ViewBag.UFs        = new SelectList((List <UF>)Session["UFs"], "UF_CD_ID", "UF_NM_NOME");
            ViewBag.Cats       = new SelectList((List <CATEGORIA_CONTATO>)Session["CatContatos"], "CACO_CD_ID", "CACO_NM_NOME");
            Int32 idAss = (Int32)Session["IdAssinante"];

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

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

                    // Sucesso
                    listaMasterAss              = new List <CONTATO>();
                    Session["ListaContato"]     = null;
                    Session["VoltaContato"]     = 1;
                    Session["IdAssinanteVolta"] = item.ASSI_CD_ID;
                    Session["Contato"]          = item;
                    Session["MensContato"]      = 0;
                    return(RedirectToAction("IncluirContato"));
                }
                catch (Exception ex)
                {
                    ViewBag.Message = ex.Message;
                    return(View(vm));
                }
            }
            else
            {
                return(View(vm));
            }
        }
        public ActionResult MontarTelaAniversariantes()
        {
            // Verifica se tem usuario logado
            USUARIO usuario = new USUARIO();

            if ((String)Session["Ativa"] == null)
            {
                return(RedirectToAction("Login", "ControleAcesso"));
            }
            usuario = (USUARIO)Session["UserCredentials"];
            Int32 idAss = (Int32)Session["IdAssinante"];

            // Carrega listas
            if ((List <CONTATO>)Session["ListaContato"] == null)
            {
                List <CONTATO> lista = baseApp.GetAllItens(idAss);
                lista                   = lista.Where(p => p.CONT_DT_NASCIMENTO == DateTime.Today.Date).ToList();
                listaMasterAss          = lista;
                Session["ListaContato"] = listaMasterAss;
            }
            ViewBag.Listas = (List <CONTATO>)Session["ListaContato"];
            ViewBag.Title  = "Contatos";

            ViewBag.Origens    = new SelectList((List <ORIGEM>)Session["Origens"], "ORIG_CD_ID", "ORIG_NM_NOME");
            ViewBag.Profissoes = new SelectList((List <PROFISSAO>)Session["Profissoes"], "PROF_CD_ID", "PROF_NM_NOME");
            ViewBag.Clubes     = new SelectList((List <CLUBE>)Session["Clubes"], "CLUB_CD_ID", "CLUB_NM_NOME");
            ViewBag.UFs        = new SelectList((List <UF>)Session["UFs"], "UF_CD_ID", "UF_NM_NOME");
            ViewBag.Cats       = new SelectList((List <CATEGORIA_CONTATO>)Session["CatContatos"], "CACO_CD_ID", "CACO_NM_NOME");

            // Indicadores
            ViewBag.Contatos = listaMasterAss.Count;

            // Mensagem
            if ((Int32)Session["MensContato"] == 1)
            {
                ModelState.AddModelError("", SMS_Resource.ResourceManager.GetString("M0016", CultureInfo.CurrentCulture));
            }

            // Abre view
            Session["MensContato"] = 0;
            objetoAss = new CONTATO();
            objetoAss.CONT_DT_NASCIMENTO = DateTime.Today.Date;
            return(View(objetoAss));
        }
        public ActionResult EditarContato(ContatoViewModel vm)
        {
            if ((String)Session["Ativa"] == null)
            {
                return(RedirectToAction("Login", "ControleAcesso"));
            }
            ViewBag.Origens    = new SelectList((List <ORIGEM>)Session["Origens"], "ORIG_CD_ID", "ORIG_NM_NOME");
            ViewBag.Profissoes = new SelectList((List <PROFISSAO>)Session["Profissoes"], "PROF_CD_ID", "PROF_NM_NOME");
            ViewBag.Clubes     = new SelectList((List <CLUBE>)Session["Clubes"], "CLUB_CD_ID", "CLUB_NM_NOME");
            ViewBag.UFs        = new SelectList((List <UF>)Session["UFs"], "UF_CD_ID", "UF_NM_NOME");
            ViewBag.Cats       = new SelectList((List <CATEGORIA_CONTATO>)Session["CatContatos"], "CACO_CD_ID", "CACO_NM_NOME");
            Int32 idAss = (Int32)Session["IdAssinante"];

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

                    // Sucesso
                    listaMasterAss          = new List <CONTATO>();
                    Session["ListaContato"] = null;
                    Session["MensContato"]  = 0;
                    return(RedirectToAction("MontarTelaContato"));
                }
                catch (Exception ex)
                {
                    ViewBag.Message = ex.Message;
                    return(View(vm));
                }
            }
            else
            {
                return(View(vm));
            }
        }
        public ActionResult EditarContato(Int32 id)
        {
            // Prepara view
            if ((String)Session["Ativa"] == null)
            {
                return(RedirectToAction("Login", "ControleAcesso"));
            }
            ViewBag.Origens    = new SelectList((List <ORIGEM>)Session["Origens"], "ORIG_CD_ID", "ORIG_NM_NOME");
            ViewBag.Profissoes = new SelectList((List <PROFISSAO>)Session["Profissoes"], "PROF_CD_ID", "PROF_NM_NOME");
            ViewBag.Clubes     = new SelectList((List <CLUBE>)Session["Clubes"], "CLUB_CD_ID", "CLUB_NM_NOME");
            ViewBag.UFs        = new SelectList((List <UF>)Session["UFs"], "UF_CD_ID", "UF_NM_NOME");
            ViewBag.Cats       = new SelectList((List <CATEGORIA_CONTATO>)Session["CatContatos"], "CACO_CD_ID", "CACO_NM_NOME");
            Int32 idAss = (Int32)Session["IdAssinante"];

            CONTATO item = baseApp.GetItemById(id);

            objetoAssAntes     = item;
            Session["Contato"] = item;
            Session["IdVolta"] = id;
            ContatoViewModel vm = Mapper.Map <CONTATO, ContatoViewModel>(item);

            return(View(vm));
        }
        public ActionResult IncluirContato()
        {
            // Prepara listas
            if ((String)Session["Ativa"] == null)
            {
                return(RedirectToAction("Login", "ControleAcesso"));
            }

            ViewBag.Origens    = new SelectList((List <ORIGEM>)Session["Origens"], "ORIG_CD_ID", "ORIG_NM_NOME");
            ViewBag.Profissoes = new SelectList((List <PROFISSAO>)Session["Profissoes"], "PROF_CD_ID", "PROF_NM_NOME");
            ViewBag.Clubes     = new SelectList((List <CLUBE>)Session["Clubes"], "CLUB_CD_ID", "CLUB_NM_NOME");
            ViewBag.UFs        = new SelectList((List <UF>)Session["UFs"], "UF_CD_ID", "UF_NM_NOME");
            ViewBag.Cats       = new SelectList((List <CATEGORIA_CONTATO>)Session["CatContatos"], "CACO_CD_ID", "CACO_NM_NOME");
            Int32 idAss = (Int32)Session["IdAssinante"];

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

            vm.CONT_IN_ATIVO = 1;
            vm.ASSI_CD_ID    = idAss;
            return(View(vm));
        }
Пример #10
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;
            }
        }