private void EnviaNotificacaoHub(GeraCotacaoViewModel cota) { try { Proxy.Invoke("NotificaNovaCotacao", cota).Wait(); eventLog2.WriteEntry($"Notificação enviada com sucesso!", EventLogEntryType.Information, 1); } catch (Exception ex) { eventLog2.WriteEntry($"Erro ao enviar notificação para fornecedores.\n\n{ex}", EventLogEntryType.Error, 1); } }
public void NotificaNovaCotacao(GeraCotacaoViewModel cotacao) { var lista = cotacao.ListaTokenUsuarios; this._hubContext.Clients.Clients(lista).notificaNovaCotacao(cotacao.CotacaoId); }
public GeraCotacaoViewModel GeraCotacaoPedidos() { GeraCotacaoViewModel cotacao = new GeraCotacaoViewModel(); var statusId = _statusSisRep.FirstOrDefault(x => x.WorkflowStatusId == 14 && x.Ordem == 1).Id; var qtdPedidos = _pedidoRep.GetAll().Count(x => !x.FlgCotado && x.DtCotacao <= DateTime.Now); if (qtdPedidos > 0) { var pOut = new SqlParameter { ParameterName = "@cotacaoId", SqlDbType = SqlDbType.Int, Direction = ParameterDirection.Output }; _pedidoRep.ExecuteWithStoreProcedure("stp_upd_pedidos_sem_cotar @cotacaoId out", pOut); //Resgata ID da cotação inserida var cotacaoID = Convert.ToInt32(pOut.Value); //Historico de Cotação var cotacaoHistorico = new HistStatusCotacao { Ativo = true, CotacaoId = cotacaoID, DtCriacao = DateTime.Now, UsuarioCriacaoId = 1, StatusSistemaId = statusId }; _histStatusCotacaoRep.Add(cotacaoHistorico); var cot = _cotacaoRep.GetSingle(cotacaoID); var naService = new NotificacoesAlertasService(); var listaUsuario = naService.TrataNovaCotacaoFornecedor(cot, (int)TipoAviso.NovaCotacao); foreach (var retAviso in listaUsuario) { var aviso = new Avisos { UsuarioCriacaoId = 1, DtCriacao = DateTime.Now, Ativo = true, IdReferencia = cot.Id, DataUltimoAviso = DateTime.Now, ExibeNaTelaAvisos = true, TipoAvisosId = (int)TipoAviso.NovaCotacao, //Id TipoAviso para esse aviso URLPaginaDestino = "/#/cotacoes", TituloAviso = "Cotação Pendente de Resposta", ToolTip = "Cotação Pendente de Resposta", DescricaoAviso = "Cotação " + cot.Id + " Pendente de Resposta", ModuloId = 4, //Modulo Fornecedor UsuarioNotificadoId = retAviso.Usuario.Id }; _avisosRep.Add(aviso); } _unitOfWork.Commit(); var usuarios = listaUsuario.Select(x => x.Usuario).Distinct(); var listaToken = usuarios.Select(x => x.TokenSignalR).ToList(); cotacao.CotacaoId = cot.Id; cotacao.ListaTokenUsuarios = listaToken; return(cotacao); } return(cotacao); }