public static StatusCriacaoSolicitacao PodeCriarSolicitacao(User user) { //return StatusCriacaoSolicitacao.Permitido; if (!AvaliacaoBL.PossuiAvaliacaoPendente(user)) return StatusCriacaoSolicitacao.Permitido; else return StatusCriacaoSolicitacao.AvaliacaoPendente; }
public ActionResult Edit(User user) { if (ModelState.IsValid) { db.Entry(user).State = EntityState.Modified; db.SaveChanges(); return RedirectToAction("Index"); } return View(user); }
/// <summary> /// Determina se <paramref name="user"/> possui alguma avaliação pendente /// </summary> /// <param name="user">usuário a ser analisado</param> /// <returns>true se alguma das Avaliações de <paramref name="user"/> não tiver sido avaliada</returns> public static bool PossuiAvaliacaoPendente(User user) { if (user == null) throw new ArgumentNullException("user", "user is null."); var solicitacoes = from s in db.Solicitacoes where s.User.UserName == user.UserName select s; return solicitacoes.FiltrarPendentes().Any(); // Regra para dias corridos para avaliar }
public static Models.Solicitacao CriarSolicitacao(User user, int ano = 0) { var podeCriarSolicitacao = PodeCriarSolicitacao(user); if (podeCriarSolicitacao != StatusCriacaoSolicitacao.Permitido) throw new BusinessLogicException("Usuário não está autorizado a criar solicitações", podeCriarSolicitacao); var solicitacao = CriarSolicitacao(new Models.Solicitacao(), ano); //solicitacao.User = user; return solicitacao; }
public ActionResult Create(User user) { if (ModelState.IsValid) { user.UserName = user.UserName.ToLower(); db.Users.Add(user); db.SaveChanges(); return RedirectToAction("Index"); } return View(user); }
/// <summary> /// Determina se <paramref name="user"/> possui alguma avaliação pendente /// </summary> /// <param name="user">usuário a ser analisado</param> /// <returns>true se alguma das Avaliações de <paramref name="user"/> não tiver sido avaliada</returns> public static bool PossuiAvaliacaoPendente(User user) { if (user == null) throw new ArgumentNullException("user", "user is null."); var solicitacoes = from s in db.Solicitacoes where s.User.UserName == user.UserName select s; DateTime agora = DateTime.Now; //Verificar se avaliações estão pendentes return solicitacoes.Any(s => !s.Avaliacao.Avaliado && s.Avaliacao.DataLimite < agora); // Regra para dias corridos para avaliar }