public void EncerrarSessao(string sessionId) { try { using (db = base.Create()) { #region Desativa a sessão Sessao s = db.Sessaos.Find(sessionId); if (s != null) { s.dt_atualizacao = DateTime.Now; s.dt_desativacao = DateTime.Now; db.Entry(s).State = EntityState.Modified; db.SaveChanges(); } #endregion #region Desativa as sessões que estão sem atualização há mais de 15 minutos ChatModel chat = new ChatModel(); chat.CleanInactiveSessions(); #endregion } } catch (Exception ex) { PinheiroSereniException.saveError(ex, GetType().FullName); } }
public Repository Update(Repository value) { using (db = new PinheiroSereniContext()) { try { value.mensagem = new Validate() { Code = 0, Message = MensagemPadrao.Message(0).ToString() }; ParamRepository r = (ParamRepository)value; db.Entry(r.parametro).State = EntityState.Modified; db.SaveChanges(); } catch (System.Data.Entity.Infrastructure.DbUpdateException ex) { value.mensagem.Code = 36; value.mensagem.MessageBase = MensagemPadrao.Message(36).ToString(); if ((ex.Message.ToUpper().Contains("FOREIGN KEY") || ex.Message.ToUpper().Contains("REFERENCE")) || (ex.InnerException.ToString().ToUpper().Contains("FOREIGN KEY") || ex.InnerException.ToString().ToUpper().Contains("REFERENCE"))) { value.mensagem.Code = 16; value.mensagem.Message = MensagemPadrao.Message(16).ToString(); } else if (ex.Message.ToUpper().Contains("PRIMARY KEY") || ex.InnerException.ToString().ToUpper().Contains("PRIMARY KEY")) { value.mensagem.Code = 37; value.mensagem.Message = MensagemPadrao.Message(37).ToString(); } else { value.mensagem.Message = MensagemPadrao.Message(17).ToString(); } PinheiroSereniException.saveError(ex, GetType().FullName); } catch (Exception ex) { PinheiroSereniException.saveError(ex, GetType().FullName); value.mensagem.Code = 17; value.mensagem.MessageBase = ex.InnerException.InnerException.Message ?? ex.Message; value.mensagem.Message = new PinheiroSereniException(ex.Message, GetType().FullName).Message; } } return(value); }
public bool validarSessao(string sessionId) { try { using (db = base.Create()) { #region Validar Sessão do usuário Sessao s = db.Sessaos.Find(sessionId); if (s == null) { return(false); } #endregion #region Verifica se a sessão já expirou if (s.dt_desativacao != null) { return(false); } #endregion #region Atualiza a sessão s.dt_atualizacao = DateTime.Now; db.Entry(s).State = EntityState.Modified; db.SaveChanges(); #endregion } } catch (Exception ex) { PinheiroSereniException.saveError(ex, GetType().FullName); return(false); } return(true); }
public Validate send(string mensagem, string nome, string telefoneCliente, string telefoneCorretor) { Validate result = new Validate() { Message = MensagemPadrao.Message(0).ToString() }; try { System.Net.HttpWebRequest wRequest; Uri targetURI = new Uri("http://webapi.comtele.com.br/api/api_fuse_connection.php?fuse=get_id&user=60705&pwd=multisul"); wRequest = (System.Net.HttpWebRequest)HttpWebRequest.Create(targetURI); System.IO.StreamReader strReader = new System.IO.StreamReader(wRequest.GetResponse().GetResponseStream()); string id = strReader.ReadToEnd().Replace("\n", ""); strReader.Close(); // Enviar mensagem targetURI = new Uri("http://webapi.comtele.com.br/api/api_fuse_connection.php?fuse=send_msg&id=" + id + "&from=" + telefoneCliente + "&msg=Corretor, você deve ligar para o cliente " + nome + " de nº " + telefoneCliente + "&number=" + telefoneCorretor); wRequest = (System.Net.HttpWebRequest)HttpWebRequest.Create(targetURI); strReader = new System.IO.StreamReader(wRequest.GetResponse().GetResponseStream()); string retornoTorpedo = strReader.ReadToEnd().Replace("\n", ""); strReader.Close(); //if (retornoTorpedo != "") // throw new PinheiroSereniException(new Validate() { Message = retornoTorpedo }); //User: 50019 //Senha: apiteste2 // recuperar o ID //http://webapi.comtele.com.br/api/api_fuse_connection.php?fuse=get_id&user=USUÁRIO&pwd=SENHA // Enviar a mensagem //http://webapi.comtele.com.br/api/api_fuse_connection.php?fuse=send_msg&id=ID&from=ORIGEM&msg=MENSAGEM&number=DESTINO //3) Agendar envio de mensagem //http://webapi.comtele.com.br/_api/api_fuse_connection.php?fuse=send_msg&id="CODIGO_DO_ID"&from=FROM&msg=MENSAGEM&number=TELEFONES_SEPARADO_POR_VIRGULAS&sch_date=YYYY-MM-DD&sch_hour=HH:MM //Parâmetros: //- ID => proveniente da chamada get_id //- FROM => Campo DE //- MSG => Mensagem texto (lembre-se que todos os caracteres deverão estar no padrão URL_ENCODE) //- NUMBER => Telefones separados por vírgula lembrando que a limitação é só da URL // - SCH_DATE => Data de agendamento no seguinte formato (YYYY-MM-DD) //- SCH_HOUR => Hora do agendamento no formato (HH:MM) //Todos os campos são obrogatórios na API, porém caso não seja especificado os parâmetros sch_date e sch_hour será assumido de forma padrão como mensagem instantânea. //ConsultarSaldo: ////http://webapi.comtele.com.br/api/api_fuse_connection.php?fuse=get_balance&id=ID //VisualizarRelatório //http://webapi.comtele.com.br/api/api_fuse_connection.php?fuse=get_report&id=ID&dt_begin=DATA1&dt_end=DATA2&mode=MODE //ID: ID fornecidopeloprimeiropasso. //DATA1: Data inicial do relatório. Formato YYYY-MM-DD //DATA2: Data final do relatório. Formato YYYY-MM-DD //MODE:resume :RelatórioResumido //MODE:detail :RelatórioDetalhado //Segue a lista de possiveis erros: //ERR_00 : Disabled user //ERR_01 : Report error //ERR_02 : Balance error //ERR_03 : Credits expired //ERR_11 : ID Error //FAIL_ON_CREDITS //FAIL_CHECK_NUMBER //FAIL_ON_SEND } catch (PinheiroSereniException ex) { PinheiroSereniException.saveError(ex, GetType().FullName); result = new Validate() { Code = 15, Message = MensagemPadrao.Message(15).ToString(), MessageBase = ex.Message }; } return(result); }
public Repository Delete(Repository value) { using (db = new PinheiroSereniContext()) { try { #region validar exclusão value.mensagem = this.Validate(value, Crud.EXCLUIR); #endregion #region excui o Corretor if (value.mensagem.Code == 0) { CorretorRepository r = (CorretorRepository)value; CorretorOnline corr = db.CorretorOnlines.Find(r.corretor.corretorId); db.CorretorOnlines.Remove(corr); db.SaveChanges(); } else { value.mensagem.MessageBase = MensagemPadrao.Message(999).ToString(); } #endregion } catch (System.Data.Entity.Infrastructure.DbUpdateException ex) { value.mensagem.Code = 36; value.mensagem.MessageBase = MensagemPadrao.Message(36).ToString(); if ((ex.Message.ToUpper().Contains("FOREIGN KEY") || ex.Message.ToUpper().Contains("REFERENCE")) || (ex.InnerException.ToString().ToUpper().Contains("FOREIGN KEY") || ex.InnerException.ToString().ToUpper().Contains("REFERENCE"))) { value.mensagem.Code = 16; value.mensagem.Message = MensagemPadrao.Message(16).ToString(); } else if (ex.Message.ToUpper().Contains("PRIMARY KEY") || ex.InnerException.ToString().ToUpper().Contains("PRIMARY KEY")) { value.mensagem.Code = 37; value.mensagem.Message = MensagemPadrao.Message(37).ToString(); } else { value.mensagem.Message = MensagemPadrao.Message(17).ToString(); } PinheiroSereniException.saveError(ex, GetType().FullName); } catch (ArgumentException ex) { value.mensagem = new Validate() { Code = 17, Message = MensagemPadrao.Message(17).ToString(), MessageBase = ex.Message }; } catch (Exception ex) { PinheiroSereniException.saveError(ex, GetType().FullName); value.mensagem.Code = 17; value.mensagem.MessageBase = ex.InnerException.InnerException.Message ?? ex.Message; value.mensagem.Message = new PinheiroSereniException(ex.Message, GetType().FullName).Message; } } return(value); }
public Repository Update(Repository value) { using (db = new PinheiroSereniContext()) { try { #region validar alteração value.mensagem = this.Validate(value, Crud.ALTERAR); #endregion #region altera a Corretor if (value.mensagem.Code == 0) { CorretorRepository r = (CorretorRepository)value; db.Entry(r.corretor).State = EntityState.Modified; db.SaveChanges(); } else { value.mensagem.MessageBase = MensagemPadrao.Message(999).ToString(); } #endregion } catch (System.Data.Entity.Infrastructure.DbUpdateException ex) { value.mensagem.Code = 36; value.mensagem.MessageBase = MensagemPadrao.Message(36).ToString(); if ((ex.Message.ToUpper().Contains("FOREIGN KEY") || ex.Message.ToUpper().Contains("REFERENCE")) || (ex.InnerException.ToString().ToUpper().Contains("FOREIGN KEY") || ex.InnerException.ToString().ToUpper().Contains("REFERENCE"))) { value.mensagem.Code = 16; value.mensagem.Message = MensagemPadrao.Message(16).ToString(); } else if (ex.Message.ToUpper().Contains("PRIMARY KEY") || ex.InnerException.ToString().ToUpper().Contains("PRIMARY KEY")) { value.mensagem.Code = 37; value.mensagem.Message = MensagemPadrao.Message(37).ToString(); } else { value.mensagem.Message = MensagemPadrao.Message(17).ToString(); } PinheiroSereniException.saveError(ex, GetType().FullName); } catch (ArgumentException ex) { value.mensagem = new Validate() { Code = 17, Message = MensagemPadrao.Message(17).ToString(), MessageBase = ex.Message }; } catch (Exception ex) { PinheiroSereniException.saveError(ex, GetType().FullName); value.mensagem.Code = 17; value.mensagem.MessageBase = ex.InnerException.InnerException.Message ?? ex.Message; value.mensagem.Message = new PinheiroSereniException(ex.Message, GetType().FullName).Message; } } return(value); }
public Repository Insert(Repository value) { using (PinheiroSereniContext db = new PinheiroSereniContext()) { try { value.mensagem = Validate(value, Crud.INCLUIR); if (value.mensagem.Code > 0) { throw new ArgumentException(value.mensagem.Message); } #region identifica o corretor da vez AtendimentoEmailRepository r = (AtendimentoEmailRepository)value; CorretorOnline corretor = r.corretor.obterCorretor(db.Mensagems, db.CorretorOnlines); #endregion #region verifica se tem sessão ativa para o corretor da vez var _s = from s in db.Sessaos where s.corretorId == corretor.corretorId && s.dt_desativacao == null && s.statusOperador.Equals("O") select s; #endregion #region Se o corretor da vez não tiver sessão ativa, procurar o primeiro corretor que esteja online if (_s.Count() == 0) { _s = from s in db.Sessaos where s.dt_desativacao == null && s.statusOperador.Equals("O") && s.corretorId != null orderby s.CorretorOnline.indexEscala select s; if (_s.Count() == 0) // não tem corretor online => usar o corretor "Supervisor Online" { corretor = (from cor in db.CorretorOnlines where cor.nome == "Supervisor Online" select cor).FirstOrDefault(); } else if (_s.Where(m => m.CorretorOnline.indexEscala >= corretor.indexEscala).Count() > 0) { _s = _s.Where(m => m.CorretorOnline.indexEscala >= corretor.indexEscala); corretor = db.CorretorOnlines.Find(_s.First().corretorId); } } #endregion #region insere a inscricao do cliente r.prospect.dt_cadastro = DateTime.Now; r.prospect.isFolderDigital = "N"; if (db.Prospects.Find(r.prospect.email, r.prospect.empreendimentoId) == null) { db.Prospects.Add(r.prospect); } #endregion #region insere a mensagem r.msg.dt_cadastro = DateTime.Now; r.msg.email = r.prospect.email; r.msg.empreendimentoId = r.prospect.empreendimentoId; r.msg.corretorId = corretor.corretorId; r.msg.emailDirecao1 = db.Parametros.Find((int)Parametros.EMAIL_ADMINISTRACAO).valor; r.msg.assunto = "Confirmação de recebimento de e-mail"; db.Mensagems.Add(r.msg); #endregion db.SaveChanges(); #region envia e-mail para o corretor e para os diretores (com cópia para o próprio cliente) string fone_emp = "3131-4450"; Empreendimento emp = db.Empreendimentos.Find(r.prospect.empreendimentoId); if (emp.empreendimentoId == 2) { fone_emp = "3222-8111"; } EMail message = new EMail(); //message.From = new MailAddress(db.Parametros.Find((int)Parametros.EMAIL_SISTEMA).valor, db.Parametros.Find((int)Parametros.NOME_EMAIL_SISTEMA).valor); message.From = new MailAddress(System.Configuration.ConfigurationManager.AppSettings["emailRemetente"], db.Parametros.Find((int)Parametros.NOME_EMAIL_SISTEMA).valor); message.To.Add(new MailAddress(corretor.email, corretor.nome)); message.Bcc.Add(new MailAddress(r.prospect.email, r.prospect.nome)); message.Bcc.Add(new MailAddress(db.Parametros.Find((int)Parametros.EMAIL_ADMINISTRACAO).valor, db.Parametros.Find((int)Parametros.NOME_ADMINISTRACAO).valor)); message.Subject = r.msg.assunto; message.Body = "<div style=\"font-family: verdana; font-size: 12px; width: 700px\">" + "<div><p>Olá, <b>" + r.prospect.nome + "</b></p></div>" + "<div><p>Você cadastrou seus dados no hotsite " + emp.nomeEmpreendimento + ", um empreendimento da " + db.Parametros.Find((int)Parametros.NOME_ADMINISTRACAO).valor + ", e está recebendo a confirmação de envio de sua mensagem para um de nossos corretores.</p></div>" + "<div><p>E-Mail:</p></div>" + "<div><p><a href=\"mailto:" + r.prospect.email + "\">" + r.prospect.email + "</a></p></div>" + "<div><p>Mensagem:</p></div>" + "<div><p><i>\"" + r.msg.mensagem + "\"</i></p></div>" + "<div><p>Caso deseje obter mais informações sobre o " + emp.nomeEmpreendimento + ", teremos o maior prazer em atendê-lo através de nossa Central de Atendimento, pelo telefone: (91)" + fone_emp + ".</p></div>" + "<div><p>Um abraço,</p></div>" + "<div><b>Salomão Benmuyal</b></div>" + "<div><b>Gerente Comercial</b></div>" + "<div><b>" + db.Parametros.Find((int)Parametros.NOME_ADMINISTRACAO).valor + "</b></div>" + "<div> </div>" + "<div><img src=\"http://www.vendaspiazzatoscana.com.br/content/themes/base/images/PiazzaToscana/LogoPinheiroSereni.png\" alt=\"\" /></div>" + "</div>"; #if (release) message.SendMail(); #endif message.Dispose(); #endregion //trans.Commit(); } catch (PinheiroSereniException ex) { value.mensagem = new Validate() { Code = 17, Message = MensagemPadrao.Message(17).ToString(), MessageBase = ex.Message }; } catch (ArgumentException ex) { value.mensagem = new Validate() { Code = value.mensagem.Code, Message = MensagemPadrao.Message(value.mensagem.Code.Value, "telefone", value.mensagem.Message.ToString()).ToString(), MessageBase = ex.Message }; } catch (System.Net.Mail.SmtpException ex) { //trans.Rollback(); PinheiroSereniException.saveError(ex, GetType().FullName); value.mensagem = new Validate() { Code = 15, Message = MensagemPadrao.Message(15).ToString(), MessageBase = ex.Message }; } catch (Exception ex) { //trans.Rollback(); throw new PinheiroSereniException(ex.Message, GetType().FullName); } } return(value); }
public Repository Insert(Repository value) { using (PinheiroSereniContext db = new PinheiroSereniContext()) { value.mensagem = new Validate() { Code = 0, Message = "Seu folder digital já foi enviado para sua caixa de e-mail.".Replace("[br]", "<br />") }; try { #region insere a inscricao do cliente ProspectRepository r = (ProspectRepository)value; r.prospect.nome = r.nomeCompleto; r.prospect.email = r.prospect.email.ToLower(); r.prospect.dt_cadastro = DateTime.Now; r.prospect.isFolderDigital = "S"; if (db.Prospects.Find(r.prospect.email, r.prospect.empreendimentoId) == null) { db.Prospects.Add(r.prospect); db.SaveChanges(); } #endregion #region envia e-mail com o anexo do prospecto do empreendimento para o cliente e para a administração Empreendimento emp = db.Empreendimentos.Find(r.prospect.empreendimentoId); string fone_emp = "3131-4450"; if (emp.empreendimentoId == 2) { fone_emp = "3222-8111"; } System.Web.HttpContext web = System.Web.HttpContext.Current; EMail message = new EMail(); //message.From = new MailAddress(db.Parametros.Find((int)Parametros.EMAIL_SISTEMA).valor, db.Parametros.Find((int)Parametros.NOME_EMAIL_SISTEMA).valor); message.From = new MailAddress(System.Configuration.ConfigurationManager.AppSettings["emailRemetente"], db.Parametros.Find((int)Parametros.NOME_EMAIL_SISTEMA).valor); message.To.Add(new MailAddress(r.prospect.email, r.prospect.nome)); message.Bcc.Add(new MailAddress(db.Parametros.Find((int)Parametros.EMAIL_ADMINISTRACAO).valor, db.Parametros.Find((int)Parametros.NOME_ADMINISTRACAO).valor)); if (r.prospect.empreendimentoId == 1) { message.Attachments.Add(new Attachment(web.Server.MapPath("").Replace("\\Home", "") + db.Parametros.Find((int)Parametros.PATH_EMAIL_ANEXO).valor + emp.nomeEmpreendimento.Replace(" ", "") + ".pdf")); } message.Subject = "Apresentação " + emp.nomeEmpreendimento + " - Folder Digital"; message.Body = "<!DOCTYPE html>" + "<html xmlns=\"http://www.w3.org/1999/xhtml\">" + "<head>" + " <title>" + emp.nomeEmpreendimento + "</title>" + "</head>" + "<body>"; message.Body += "<div style=\"font-family: verdana; font-size: 12px; width: 700px\">" + "<div><p>Olá, <b>" + r.prospect.nome + "</b></p></div>" + "<div><p>Você cadastrou seus dados no hotsite " + emp.nomeEmpreendimento + ", um empreendimento da " + db.Parametros.Find((int)Parametros.NOME_ADMINISTRACAO).valor + ", e está recebendo, em anexo, nosso folder digital com detalhes do projeto.</p></div>" + "<div><p>Caso deseje obter mais informações sobre o " + emp.nomeEmpreendimento + ", teremos o maior prazer em atendê-lo através de nossa Central de Atendimento, pelo telefone: (91)" + fone_emp + ".</p></div>"; if (r.prospect.empreendimentoId == 2) // somente se for San Gennaro { message.Body += "<div><p><a href=\"" + db.Empreendimentos.Find(2).urlFolderDigital + "\">Clique aqui para consultar o folder digital do empreendimento</a></p></div>"; } message.Body += "<div><p>Um abraço,</p></div>" + "<div><b>Salomão Benmuyal</b></div>" + "<div><b>Gerente Comercial</b></div>" + "<div><b>" + db.Parametros.Find((int)Parametros.NOME_ADMINISTRACAO).valor + "</b></div>" + "<div> </div>" + //"<div><img src=\"http://www.vendaspiazzatoscana.com.br/content/themes/base/images/PiazzaToscana/LogoPinheiroSereni.png\" alt=\"\" /></div>" + "</div>"; message.Body += "</body>" + "</html>"; #if (release) message.SendMail(); #endif message.Dispose(); #endregion } catch (PinheiroSereniException ex) { value.mensagem = new Validate() { Code = 17, Message = MensagemPadrao.Message(17).ToString(), MessageBase = ex.Message }; } catch (ArgumentException ex) { value.mensagem = new Validate() { Code = 17, Message = MensagemPadrao.Message(17).ToString(), MessageBase = ex.Message }; } catch (System.Net.Mail.SmtpException ex) { PinheiroSereniException.saveError(ex, GetType().FullName); value.mensagem = new Validate() { Code = 15, Message = MensagemPadrao.Message(15).ToString(), MessageBase = ex.Message }; } catch (Exception ex) { throw new PinheiroSereniException(ex.Message, GetType().FullName); } } return(value); }