public override Validate AfterInsert(ChamadoViewModel value) { EmpresaSecurity <SecurityContext> empresaSecurity = new EmpresaSecurity <SecurityContext>(); sessaoCorrente = empresaSecurity.getSessaoCorrente(); int _fuso_horario = int.Parse(db.Parametros.Find((int)DWM.Models.Enumeracoes.Enumeradores.Param.FUSO_HORARIO).valor); #region Alerta 1 AlertaRepository alerta = new AlertaRepository() { empresaId = sessaoCorrente.empresaId, usuarioId = (from al in db.AreaAtendimentos where al.areaAtendimentoId == value.areaAtendimentoId select al.usuario1Id).First(), sistemaId = sessaoCorrente.sistemaId, dt_emissao = DateTime.Now.AddHours(_fuso_horario), linkText = "<span class=\"label label-warning\">Atendimento</span>", url = "../Atendimento/Create?chamadoId=" + value.chamadoId.ToString() + "&fluxo=2", mensagemAlerta = "<b>" + DateTime.Now.ToString("dd/MM/yyyy HH:mm") + "h</b><p>" + value.assunto + "</p>" }; alerta.uri = value.uri; AlertaRepository r = empresaSecurity.InsertAlerta(alerta); if (r.mensagem.Code > 0) { throw new DbUpdateException(r.mensagem.Message); } #endregion #region Alerta 2 int?usuario2Id = (from al in db.AreaAtendimentos where al.areaAtendimentoId == value.areaAtendimentoId select al.usuario2Id).FirstOrDefault(); if (usuario2Id.HasValue) { AlertaRepository alerta2 = new AlertaRepository() { empresaId = sessaoCorrente.empresaId, usuarioId = usuario2Id.Value, sistemaId = sessaoCorrente.sistemaId, dt_emissao = DateTime.Now.AddHours(_fuso_horario), linkText = "<span class=\"label label-warning\">Atendimento</span>", url = "../Atendimento/Create?chamadoId=" + value.chamadoId.ToString() + "&fluxo=2", mensagemAlerta = "<b>" + DateTime.Now.ToString("dd/MM/yyyy HH:mm") + "h</b><p>" + value.assunto + "</p>" }; alerta2.uri = value.uri; AlertaRepository r2 = empresaSecurity.InsertAlerta(alerta2); if (r2.mensagem.Code > 0) { throw new DbUpdateException(r2.mensagem.Message); } } #endregion return(new Validate() { Code = 0, Message = MensagemPadrao.Message(0).ToString(), MessageType = MsgType.SUCCESS }); }
public override ActionResult AfterCreate(ChamadoViewModel value, FormCollection collection) { try { FactoryLocalhost <AlertaRepository, ApplicationContext> factory = new FactoryLocalhost <AlertaRepository, ApplicationContext>(); value.uri = this.ControllerContext.Controller.GetType().Name.Replace("Controller", "") + "/" + this.ControllerContext.RouteData.Values["action"].ToString(); AlertaRepository a = factory.Execute(new AlertaBI(), value); if (a.mensagem.Code > 0) { throw new Exception(a.mensagem.Message); } } catch (Exception ex) { Error(ex.Message); } return(RedirectToAction("Browse")); }
public override Validate AfterInsert(RegisterViewModel value) { EmpresaSecurity <SecurityContext> empresaSecurity = new EmpresaSecurity <SecurityContext>(); int _sistemaId = int.Parse(System.Configuration.ConfigurationManager.AppSettings["sistemaId"]); int _areaAtendimentoId = int.Parse(System.Configuration.ConfigurationManager.AppSettings["secretariaId"]); // Inserir os alertas para os usuários da secretaria int[] _usuarioId = (from aa in db.AreaAtendimentos where aa.areaAtendimentoId == _areaAtendimentoId select aa.usuario1Id).ToArray(); // obtêm o chamadoId int?_chamadoId = (from cham in db.Chamados.AsEnumerable() where cham.associadoId == value.associadoId.Value select cham.chamadoId).LastOrDefault(); for (int i = 0; i <= _usuarioId.Count() - 1; i++) { AlertaRepository alerta = new AlertaRepository() { usuarioId = _usuarioId[i], sistemaId = _sistemaId, dt_emissao = DateTime.Now, linkText = "<span class=\"label label-warning\">Novo Usuário</span>", url = "../Atendimento/Create?chamadoId=" + _chamadoId.ToString() + "&fluxo=2", mensagemAlerta = "<b>" + DateTime.Now.ToString("dd/MM/yyyy HH:mm") + "h</b><p>" + chamadoViewModel.assunto + "</p>" }; alerta.uri = value.uri; AlertaRepository r = empresaSecurity.InsertAlerta(alerta); if (r.mensagem.Code > 0) { throw new DbUpdateException(r.mensagem.Message); } } return(new Validate() { Code = 0, Message = MensagemPadrao.Message(0).ToString(), MessageType = MsgType.SUCCESS }); }
public IHttpActionResult UltimasAlertasUsuario() { var alertasUsuario = AlertaRepository.ObtenerAlertasDeUsuario(IdUsuarioExec, 5); var alertas = CopiadoUtil.Copia(alertasUsuario); foreach (var alerta in alertas) { alerta.NombreUsuario = UsuarioRepository.ObtenerUsuarioPorId(alerta.IdUsuario).NombreCompleto(); } var resultado = new ResultadoOperacionDto() { Mensaje = "OK", Resultado = true, InformacionExtra = alertas }; Configuration.Formatters.JsonFormatter.SerializerSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore; return(Ok(resultado));; }
public Auth EditChamado(AnotacaoAPIModel value) { Auth auth = new Auth() { Code = 0, Mensagem = "Sucesso!" }; ChamadoViewModel chamadoViewModel = (ChamadoViewModel)ValidarToken(value); if (chamadoViewModel.mensagem.Code != 0) { Auth cvm = new Auth() { Mensagem = "Acesso Negado.", Code = 202 }; return(cvm); } ChamadoViewModel result = null; try { int?FilaAtendimentoID = null; if (value.FilaAtendimentoAtualID != value.FilaAtendimentoID.ToString()) { FilaAtendimentoID = value.FilaAtendimentoID; } #region Incluir Anotação result = new ChamadoViewModel() { ChamadoID = value.ChamadoID, uri = this.ControllerContext.Controller.GetType().Name.Replace("Controller", "") + "/" + this.ControllerContext.RouteData.Values["action"].ToString(), ChamadoAnexoViewModel = new ChamadoAnexoViewModel(), ChamadoFilaViewModel = new ChamadoFilaViewModel(), ChamadoAnotacaoViewModel = new ChamadoAnotacaoViewModel() { ChamadoID = value.ChamadoID, Mensagem = value.Anotacoes.FirstOrDefault().Mensagem }, ChamadoStatusID = value.ChamadoStatusID, FilaAtendimentoID = FilaAtendimentoID, DescricaoFilaAtendimento = value.DescricaoFilaAtendimento, DescricaoChamadoStatus = value.DescricaoChamadoStatus, DataRedirecionamento = Funcoes.Brasilia(), Rotas = new List <ChamadoFilaViewModel>(), Anexos = new List <ChamadoAnexoViewModel>(), mensagem = new Validate() { Code = 0 }, sessionId = value.sessionId, }; if (value.FilaAtendimentoAtualID == value.FilaAtendimentoID.ToString()) { result.IsUsuarioFila = false; } else { result.IsUsuarioFila = true; } result.ChamadoAnotacaoViewModel.uri = this.ControllerContext.Controller.GetType().Name.Replace("Controller", "") + "/" + this.ControllerContext.RouteData.Values["action"].ToString(); FactoryLocalhost <ChamadoAnotacaoViewModel, ApplicationContext> factory = new FactoryLocalhost <ChamadoAnotacaoViewModel, ApplicationContext>(); factory.Execute(new ChamadoAnotacaoBI(), result, value.sessionId); if (factory.Mensagem.Code > 0) { throw new App_DominioException(factory.Mensagem); } #endregion #region Emitir Alerta e enviar o e-mail para a fila destinatária FactoryLocalhost <AlertaRepository, ApplicationContext> factoryAlert = new FactoryLocalhost <AlertaRepository, ApplicationContext>(); AlertaBI bi = new AlertaBI(); AlertaRepository a = factoryAlert.Execute(new AlertaBI(), result); if (a.mensagem.Code > 0) { throw new Exception(a.mensagem.Message); } #endregion #region Recupera o ChamadoViewModel FactoryLocalhost <ChamadoViewModel, ApplicationContext> factoryChamado = new FactoryLocalhost <ChamadoViewModel, ApplicationContext>(); result = factoryChamado.Execute(new ChamadoEditBI(), result); #endregion } catch (App_DominioException ex) { ModelState.AddModelError("", ex.Result.MessageBase); // mensagem amigável ao usuário } catch (Exception ex) { App_DominioException.saveError(ex, GetType().FullName); } return(auth); }
public override Validate AfterInsert(AtendimentoViewModel value) { int _fuso_horario = int.Parse(db.Parametros.Find((int)DWM.Models.Enumeracoes.Enumeradores.Param.FUSO_HORARIO).valor); EmpresaSecurity <SecurityContext> empresaSecurity = new EmpresaSecurity <SecurityContext>(); int?_usuarioId = null; sessaoCorrente = empresaSecurity.getSessaoCorrente(); #region Alerta 1 if (value.fluxo == "1") // 1-associado/sindmed (o alerta deve ser criado p/ o funcionário) { if (value.chamado.usuarioId == null) { _usuarioId = (from aa in db.AreaAtendimentos where aa.areaAtendimentoId == value.chamado.areaAtendimentoId select aa.usuario1Id).First(); } else { _usuarioId = value.chamado.usuarioId; } } else { _usuarioId = (from ass in db.Associados where ass.associadoId == value.chamado.associadoId select ass.usuarioId).First(); } AlertaRepository alerta = new AlertaRepository() { empresaId = sessaoCorrente.empresaId, usuarioId = _usuarioId.Value, sistemaId = sessaoCorrente.sistemaId, dt_emissao = DateTime.Now.AddHours(_fuso_horario), linkText = getLinkTextAlerta(), url = "../Atendimento/Create?chamadoId=" + value.chamadoId.ToString() + "&fluxo=" + (value.fluxo == "2" ? "1" : "2"), mensagemAlerta = "<b>" + DateTime.Now.AddHours(_fuso_horario).ToString("dd/MM/yyyy HH:mm") + "h</b><p>" + value.chamado.assunto + "</p>" }; alerta.uri = value.uri; AlertaRepository r = empresaSecurity.InsertAlerta(alerta); if (r.mensagem.Code > 0) { throw new DbUpdateException(r.mensagem.Message); } #endregion #region Alerta 2 if (value.fluxo == "1" && value.chamado.usuarioId == null) // 1-associado/sindmed (o alerta deve ser criado p/ o funcionário) { _usuarioId = (from aa in db.AreaAtendimentos where aa.areaAtendimentoId == value.chamado.areaAtendimentoId select aa.usuario2Id).FirstOrDefault(); if (_usuarioId.HasValue) { AlertaRepository alerta2 = new AlertaRepository() { empresaId = sessaoCorrente.empresaId, usuarioId = _usuarioId.Value, sistemaId = sessaoCorrente.sistemaId, dt_emissao = DateTime.Now.AddHours(_fuso_horario), linkText = "<span class=\"label label-primary\">Resposta</span>", url = "../Atendimento/Create?chamadoId=" + value.chamadoId.ToString() + "&fluxo=2", mensagemAlerta = "<b>" + DateTime.Now.AddHours(_fuso_horario).ToString("dd/MM/yyyy HH:mm") + "h</b><p>" + value.chamado.assunto + "</p>" }; alerta2.uri = value.uri; AlertaRepository r2 = empresaSecurity.InsertAlerta(alerta2); if (r2.mensagem.Code > 0) { throw new DbUpdateException(r2.mensagem.Message); } } } #endregion #region Enviar e-mail ao associado if (db.Parametros.Find((int)DWM.Models.Enumeracoes.Enumeradores.Param.HABILITA_EMAIL).valor == "S" && value.fluxo == "2") { int _sistemaId = int.Parse(db.Parametros.Find((int)DWM.Models.Enumeracoes.Enumeradores.Param.SISTEMA).valor); SendEmail sendMail = new SendEmail(); Empresa empresa = seguranca_db.Empresas.Find(sessaoCorrente.empresaId); Sistema sistema = seguranca_db.Sistemas.Find(_sistemaId); Associado associado = db.Associados.Find(value.chamado.associadoId); MailAddress sender = new MailAddress(empresa.nome + " <" + empresa.email + ">"); List <string> recipients = new List <string>(); recipients.Add(associado.nome + "<" + associado.email1 + ">"); string Subject = "Re: Chamado " + value.chamado.chamadoId.ToString() + "-" + value.chamado.assunto + " - " + empresa.nome; string Text = "<p>Atendimento de chamado</p>"; string Html = "<p><span style=\"font-family: Verdana; font-size: larger; color: #656464\">" + sistema.descricao + "</span></p>" + "<p><span style=\"font-family: Verdana; font-size: xx-large; color: #0094ff\">" + associado.nome.ToUpper() + "</span></p>" + "<p></p>" + "<p><span style=\"font-family: Verdana; font-size: small; color: #000\">Essa é uma mensagem de notificação de atendimento de chamado. Sua solicitação foi respondida. Acesse o sistema para ler o retorno da administração.</span></p>"; Html += "<p></p>" + "<p> </p>" + "<p> </p>" + "<p><span style=\"font-family: Verdana; font-size: small; color: #000\">Obrigado,</span></p>" + "<p><span style=\"font-family: Verdana; font-size: small; color: #000\">Administração " + empresa.nome + "</span></p>"; Validate result = sendMail.Send(sender, recipients, Html, Subject, Text); if (result.Code > 0) { result.MessageBase = "Resposta de chamado cadastrada com sucesso, mas por falhas de comunicação não foi possível enviar o e-mail de notificação ao usuário. "; throw new App_DominioException(result); } } #endregion return(new Validate() { Code = 0, Message = MensagemPadrao.Message(0).ToString(), MessageType = MsgType.SUCCESS }); }
public ActionResult EditAnotacao( int ChamadoID, string Mensagem, string FilaAtendimentoAtualID, string _FilaAtendimentoID, string DescricaoFilaAtendimento, string IsCondomino, string _ChamadoStatusID, string DescricaoChamadoStatus) { if (ModelState.IsValid) { if (ViewBag.ValidateRequest) { ChamadoViewModel result = null; try { int?FilaAtendimentoID = null; if (FilaAtendimentoAtualID != _FilaAtendimentoID) { FilaAtendimentoID = int.Parse(_FilaAtendimentoID); } #region Incluir Anotação result = new ChamadoViewModel() { ChamadoID = ChamadoID, uri = this.ControllerContext.Controller.GetType().Name.Replace("Controller", "") + "/" + this.ControllerContext.RouteData.Values["action"].ToString(), ChamadoAnexoViewModel = new ChamadoAnexoViewModel(), ChamadoFilaViewModel = new ChamadoFilaViewModel(), ChamadoAnotacaoViewModel = new ChamadoAnotacaoViewModel() { ChamadoID = ChamadoID, Mensagem = Mensagem }, ChamadoStatusID = _ChamadoStatusID == null || _ChamadoStatusID == "" ? 0 : int.Parse(_ChamadoStatusID), FilaAtendimentoID = FilaAtendimentoID, DescricaoFilaAtendimento = DescricaoFilaAtendimento, DescricaoChamadoStatus = DescricaoChamadoStatus, DataRedirecionamento = Funcoes.Brasilia(), Rotas = new List <ChamadoFilaViewModel>(), Anexos = new List <ChamadoAnexoViewModel>(), mensagem = new Validate() { Code = 0 } }; if (FilaAtendimentoAtualID == _FilaAtendimentoID) { result.IsUsuarioFila = false; } else { result.IsUsuarioFila = true; } result.ChamadoAnotacaoViewModel.uri = this.ControllerContext.Controller.GetType().Name.Replace("Controller", "") + "/" + this.ControllerContext.RouteData.Values["action"].ToString(); FactoryLocalhost <ChamadoAnotacaoViewModel, ApplicationContext> factory = new FactoryLocalhost <ChamadoAnotacaoViewModel, ApplicationContext>(); result.Anotacoes = factory.Execute(new ChamadoAnotacaoBI(), result, ChamadoID); if (factory.Mensagem.Code > 0) { throw new App_DominioException(factory.Mensagem); } ChamadoAnotacaoModel model = new ChamadoAnotacaoModel(); ChamadoAnotacaoViewModel ChamadoAnotacaoViewModel = model.CreateRepository(Request); result.ChamadoAnotacaoViewModel.ChamadoID = ChamadoID; #endregion #region Emitir Alerta e enviar o e-mail para a fila destinatária FactoryLocalhost <AlertaRepository, ApplicationContext> factoryAlert = new FactoryLocalhost <AlertaRepository, ApplicationContext>(); AlertaBI bi = new AlertaBI(); AlertaRepository a = factoryAlert.Execute(new AlertaBI(), result); if (a.mensagem.Code > 0) { throw new Exception(a.mensagem.Message); } #endregion #region Recupera o ChamadoViewModel FactoryLocalhost <ChamadoViewModel, ApplicationContext> factoryChamado = new FactoryLocalhost <ChamadoViewModel, ApplicationContext>(); result = factoryChamado.Execute(new ChamadoEditBI(), result); #endregion //if (FilaAtendimentoAtualID != _FilaAtendimentoID) // result.IsUsuarioFila = false; //else // result.IsUsuarioFila = true; //result.IsCondomino = IsCondomino == "True" ? true : false; Success("Registro processado com sucesso"); } catch (App_DominioException ex) { ModelState.AddModelError("", ex.Result.MessageBase); // mensagem amigável ao usuário Error(ex.Result.Message); // Mensagem em inglês com a descrição detalhada do erro e fica no topo da tela } catch (Exception ex) { App_DominioException.saveError(ex, GetType().FullName); ModelState.AddModelError("", MensagemPadrao.Message(17).ToString()); // mensagem amigável ao usuário Error(ex.Message); // Mensagem em inglês com a descrição detalhada do erro e fica no topo da tela } return(View("_Anotacao", result)); } else { return(View()); } } else { //CondominoEditViewModel result = new CondominoEditViewModel() //{ // UnidadeViewModel = new UnidadeViewModel() // { // EdificacaoID = VeiculoViewModel.EdificacaoID, // UnidadeID = VeiculoViewModel.UnidadeID, // CondominioID = VeiculoViewModel.CondominioID // }, // CondominoPFViewModel = new CondominoPFViewModel() // { // CondominoID = VeiculoViewModel.CondominoID // }, // VeiculoViewModel = VeiculoViewModel //}; //Factory<CondominoEditViewModel, ApplicationContext> factory = new Factory<CondominoEditViewModel, ApplicationContext>(); //CondominoEditViewModel obj = factory.Execute(new EditarCondominoBI(), result); //result.Veiculos = obj.Veiculos; //Error("Erro de preenhcimento em campos"); return(View("_Anotacao", result)); } }
public override EnviarEmailViewModel ExecProcess(EnviarEmailViewModel value, Crud operation) { Validate result = new Validate() { Code = 0, Message = MensagemPadrao.Message(0).ToString(), MessageType = MsgType.SUCCESS }; EmpresaSecurity <SecurityContext> empresaSecurity = new EmpresaSecurity <SecurityContext>(); #region Enviar e-mail ao usuário Empresa empresa = seguranca_db.Empresas.Find(value.empresaId); SendEmail sendMail = new SendEmail(); MailAddress sender = new MailAddress(empresa.nome + " <" + empresa.email + ">"); List <string> recipients = new List <string>(); List <string> carbon = new List <string>(); recipients.Add(empresa.nome + " <" + empresa.email + ">"); foreach (AssociadoViewModel a in value.Destinatarios) { if (a.email1 != null && a.email1.Trim() != "") { carbon.Add(a.nome + "<" + a.email1 + ">"); } } string Subject = value.assunto; string Text = "<p>Enviar e-mail ao associado</p>"; string Html = value.mensagemEmail; result = sendMail.Send(sender, recipients, Html, Subject, Text, carbon); if (result.Code > 0) { throw new ArgumentException(result.MessageBase); } #endregion #region Enviar alerta foreach (AssociadoViewModel a in value.Destinatarios.Where(info => info.usuarioId.HasValue)) { AlertaRepository alerta = new AlertaRepository() { usuarioId = a.usuarioId.Value, sistemaId = sessaoCorrente.sistemaId, dt_emissao = DateTime.Now, linkText = "<span class=\"label label-primary\">E-mail</span>", url = "#", mensagemAlerta = "<b>" + DateTime.Now.ToString("dd/MM/yyyy HH:mm") + "h</b><p>" + value.assunto + "</p>" }; alerta.uri = value.uri; AlertaRepository r = empresaSecurity.InsertAlerta(alerta); if (r.mensagem.Code > 0) { throw new DbUpdateException(r.mensagem.Message); } } return(value); #endregion }