public async Task VerificaRegraAlteracaoFrequencia(long registroFrequenciaId, DateTime criadoEm, DateTime alteradoEm, long usuarioAlteracaoId) { int anoAtual = DateTime.Now.Year; // Parametro do sistema de dias para notificacao var qtdDiasParametroString = await repositorioParametrosSistema.ObterValorPorTipoEAno( TipoParametroSistema.QuantidadeDiasNotificarAlteracaoChamadaEfetivada, anoAtual); var parseado = int.TryParse(qtdDiasParametroString, out int qtdDiasParametro); if (!parseado) { SentrySdk.CaptureEvent(new SentryEvent(new Exception($"Não foi encontrado parametro ativo para o tipo 'QuantidadeDiasNotificarAlteracaoChamadaEfetivada' para o ano de {anoAtual}"))); return; } var qtdDiasAlteracao = (alteradoEm.Date - criadoEm.Date).TotalDays; // Verifica se ultrapassou o limite de dias para alteração if (qtdDiasAlteracao < qtdDiasParametro) { return; } var usuariosNotificacao = new List <(Cargo?, Usuario)>(); // Dados da Aula var registroFrequencia = repositorioFrequencia.ObterAulaDaFrequencia(registroFrequenciaId); MeusDadosDto professor = await servicoEOL.ObterMeusDados(registroFrequencia.ProfessorRf); // Gestores var usuarios = BuscaGestoresUe(registroFrequencia.CodigoUe); if (usuarios != null) { usuariosNotificacao.AddRange(usuarios); } // Supervisores usuarios = BuscaSupervisoresUe(registroFrequencia.CodigoUe, usuariosNotificacao.Select(u => u.Item1)); if (usuarios != null) { usuariosNotificacao.AddRange(usuarios); } foreach (var usuario in usuariosNotificacao) { NotificaAlteracaoFrequencia(usuario.Item2, registroFrequencia, professor.Nome); } }
public void VerificaRegraAlteracaoFrequencia(long registroFrequenciaId, DateTime criadoEm, DateTime alteradoEm, long usuarioAlteracaoId) { // Parametro do sistema de dias para notificacao var qtdDiasParametro = int.Parse(repositorioParametrosSistema.ObterValorPorTipoEAno( TipoParametroSistema.QuantidadeDiasNotificarAlteracaoChamadaEfetivada, DateTime.Now.Year)); var qtdDiasAlteracao = (alteradoEm.Date - criadoEm.Date).TotalDays; // Verifica se ultrapassou o limite de dias para alteração if (qtdDiasAlteracao >= qtdDiasParametro) { var usuariosNotificacao = new List <(Cargo?, Usuario)>(); // Dados da Aula var registroFrequencia = repositorioFrequencia.ObterAulaDaFrequencia(registroFrequenciaId); MeusDadosDto professor = servicoEOL.ObterMeusDados(registroFrequencia.ProfessorRf).Result; // Gestores var usuarios = BuscaGestoresUe(registroFrequencia.CodigoUe); if (usuarios != null) { usuariosNotificacao.AddRange(usuarios); } // Supervisores usuarios = BuscaSupervisoresUe(registroFrequencia.CodigoUe, usuariosNotificacao.Select(u => u.Item1)); if (usuarios != null) { usuariosNotificacao.AddRange(usuarios); } foreach (var usuario in usuariosNotificacao) { NotificaAlteracaoFrequencia(usuario.Item2, registroFrequencia, professor.Nome); } } }