/// <summary> /// traz os dados de atividades brutas e consolidadas de apenas um usuário, com suas referencias /// de forma assíncrona /// </summary> /// <param name="usuarioId"></param> /// <param name="inicio"></param> /// <param name="fim"></param> /// <returns></returns> public virtual async Task <AtividadeIndexViewModel> GetAtividadeIndexAsync(int usuarioId, DateTime?inicio, DateTime?fim) { AtividadeIndexViewModel result = await GetAtividadeIndexAsync(new List <int> { usuarioId }, inicio, fim); ReferenciaRepository refRep = new ReferenciaRepository(_db); var referencias = await refRep.GetReferenciasAsync(usuarioId, inicio, fim); var referenciaAtual = await refRep.GetReferenciaAsync(usuarioId); result.Referencias.Clear(); result.Referencias.AddRange(referencias); result.ReferenciaAtual = referenciaAtual; if (ControleAcesso.TemAcesso(SegurancaResources.GERENCIAR_ATIVIDADES_FUNCIONARIOS)) { UsuarioApplication usuapp = new UsuarioApplication(_db); var modelo = await usuapp.GetUsuariosComAtrasoNoEnvioAsync(); result.UsuariosComAtrasoNoLancamento = modelo.Count; } return(result); }
/// <summary> /// dispara alertas de atraso nas atividades diariamente /// </summary> public static void EnviaAlertasAgendados() { try { if (!DevServices.IsDevEnv()) { using (var db = new TPAContext()) { UsuarioApplication usuApp = new UsuarioApplication(db); usuApp.EnviarTodosOsAlertas(true, true); } } } catch (Exception err) { LogServices.LogarException(err); } }