public ReviewAddedNotification(Homework homework, HomeworkAcceptViewModel model, RequestContext request) : base(u => u.Id == homework.StudentId, u => $"Задача <a href = \"{UrlGenerator.GetRouteUrl(request, "Index", "Homeworks", new { homeworkId = homework.Id })}" + $"\">{homework.Task.Title}</a> проверена <i>(" + (model.IsAccepted ? "зачтена" : $"есть замечания: \"{model.ReviewComment.Substring(0, Math.Min(model.ReviewComment.Length, 15))}...\"") + ")</i>") { }
public async Task <ActionResult> AcceptHomework(HomeworkAcceptViewModel model) { if (!ModelState.IsValid) { this.AddViewBagError(@"Ошибка при добавлении рецензии"); } var homework = _repository.HomeworkManager.Get(h => h.Id == model.HomeworkId); if (!_repository.HomeworkManager.AddReview(User.Identity.GetUserId(), model)) { this.AddViewBagError(@"Ошибка при добавлении рецензии"); } else { this.AddViewBagMessage(@"Рецензия успешно добавлена!"); await(new ReviewAddedNotification(homework, model, Request.RequestContext)).Send(); } return(RedirectToAction("Index", "Courses", new { courseId = homework.Task.Course.Id })); }
/// <summary> /// Добавляет рецензию от преподавателя, проверяя права /// </summary> /// <param name="rights">id пользователя</param> /// <param name="model">рецензия от преподавателя</param> /// <returns>true, если это тот препод</returns> public bool AddReview(string rights, HomeworkAcceptViewModel model) { return(Execute ( context => { var homework = Get(h => h.Id == model.HomeworkId); if (homework == null || homework.Task.Course.Mentor.Id != rights) { return false; } homework.IsCompleted = model.IsAccepted; homework.ReviewComment = String.IsNullOrEmpty(model.ReviewComment) ? model.IsAccepted? "Задача зачтена" : "Задача не зачтена" : model.ReviewComment; SaveChanges(); return true; } )); }