public async Task CriarNotificacaoParaAtividade(UsuarioADE usuario, AtividadeUsuario atividade) { EnumEstadoAtividade estado = atividade.VerificarEstado(); string icon = string.Empty; string verbo = string.Empty; string adjetivo = string.Empty; switch (estado) { case EnumEstadoAtividade.Aberto: if (atividade.Concluido) { icon = "assignment_turned_in"; verbo = "Concluiu"; adjetivo = "com sucesso"; } else { icon = "assignment_turned_in"; verbo = "Cadastrou"; adjetivo = "com sucesso"; } break; case EnumEstadoAtividade.Adiantado: icon = "card_giftcard"; verbo = "Concluiu"; adjetivo = "com extrema eficiência!"; break; case EnumEstadoAtividade.Atrasado: if (atividade.Concluido) { verbo = "Concluiu"; } else { verbo = "Cadastrou"; } icon = "assignment_late"; adjetivo = $"um pouco atrasado ({(DateTime.Today - atividade.Data).TotalDays} dias atrasado)"; break; } string tipoAtividade = atividade.TipoAtividade.GetDescription(); string titulo = $"<i class='material-icons medium btn-outline-yellow'>{icon}</i> {verbo} a atividade."; string descricao = $" <hr>Parabéns pelo seu empenho, continue assim!<hr> {verbo} {atividade.Titulo} {adjetivo} em {DateTime.Now.ToLocalTime()}"; NotificacaoIndividual notificacao = new NotificacaoIndividual(usuario.Id, usuario.Id, titulo, descricao); await ServicoNotificacaoIndividual.CadastrarAsync(usuario, notificacao); await unitOfWork.Commit(); }
public async Task <IActionResult> ConcluirAtividade(int IdAtividade) { UsuarioADE usuario = await ObterUsuarioLogado(); try { AtividadeUsuario atividade = await _ServicoAtividadeUsuario.BuscarPorId(IdAtividade); EnumEstadoAtividade estado = atividade.VerificarEstado(); atividade.Concluir(); await _ServicoAtividadeUsuario.AtualizarAsync(usuario, atividade); ViewBag.Retorno = $"Sucesso ao alterar atividade!"; return(Json(new { retorno = "Sucesso ao alterar atividade!" })); } catch (System.Exception ex) { await LogError(ex.Message, "AtualizarAtividadeUsuario", Dominio.Models.Enums.EnumTipoLog.AlteracaoAtividadeUsuario); ModelState.AddModelError("Falha", "Erro ao alterar atividade! Contate o suporte caso esse erro volte a acontecer. - {ex.Message}"); } return(RedirectToAction("Index", "Atividades")); }