コード例 #1
0
 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);
     }
 }
コード例 #2
0
        public void NotificaNovaCotacao(GeraCotacaoViewModel cotacao)
        {
            var lista = cotacao.ListaTokenUsuarios;

            this._hubContext.Clients.Clients(lista).notificaNovaCotacao(cotacao.CotacaoId);
        }
コード例 #3
0
        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);
        }