public IActionResult Discard(long id) { if (!User.IsInRole("Admin")) { return(RedirectToAction("Index", "Home")); } PaperVersionDTO paperVersion = _paperVersionRepository.GetPaperVersion(id); _paperVersionRepository.SetStatusVersionRejected(id); var result = _paperRepository.SetStatusDiscarded(paperVersion.PaperId); if (result == 1) { StatusMessage = "Succesfully discarded."; } return(RedirectToAction(nameof(Index))); }
public async Task <IActionResult> AddReview(AddReviewViewModel model) { var user = await _userManager.GetUserAsync(HttpContext.User); var existingReview = _reviewRepository.GetReview(model.Id); if (user.Id != existingReview.CriticId) { StatusMessage = "Error. You cannot review this file."; return(RedirectToAction(nameof(MyReviews))); } if (existingReview.FileName != null) { StatusMessage = "Error. You can review this paper only once."; return(RedirectToAction(nameof(MyReviews))); } if (model.File == null || model.File.Length == 0) { StatusMessage = "Error. File is missing or broken."; return(View(model)); } if (!model.File.FileName.EndsWith(".doc") && !model.File.FileName.EndsWith(".docx") && !model.File.FileName.EndsWith(".pdf") && !model.File.FileName.EndsWith(".odt")) { StatusMessage = "Error. File has forbidden extension.(Only .doc .docx .pdf .odt allowed)"; return(RedirectToAction("AddReview", new { id = model.Id })); } if (ModelState.IsValid) { string newFileName = Guid.NewGuid().ToString() + model.File.FileName.Substring(model.File.FileName.Length - 4); var path = Path.Combine( Directory.GetCurrentDirectory(), "wwwroot\\Reviews", newFileName); using (var stream = new FileStream(path, FileMode.Create)) { await model.File.CopyToAsync(stream); } var review = Mapper.Map <ReviewDTO>(model); review.OriginalFileName = model.File.FileName.Split('\\').Last(); review.FileName = newFileName; review.CompletionDate = DateTime.Now; var result = _reviewRepository.AddReview(review); if (result == 1) { var reviews = _reviewRepository.GetPaperVersionReviews(existingReview.PaperVersionId); if (reviews.Where(r => r.Recommendation == 2).Count() >= 2) { _paperVersionRepository.SetStatusVersionAccepted(existingReview.PaperVersionId); _paperRepository.SetStatuAccepted(existingReview.PaperVersion.PaperId); } else if (reviews.Where(r => r.Recommendation == 5).Count() >= 2) { _paperVersionRepository.SetStatusVersionRejected(existingReview.PaperVersionId); _paperRepository.SetStatusDiscarded(existingReview.PaperVersion.PaperId); } else if (reviews.Where(r => r.Recommendation == 3).Count() >= 2) { _paperVersionRepository.SetStatusMinorRevision(existingReview.PaperVersionId); } else if (reviews.Where(r => r.Recommendation == 4).Count() >= 2) { _paperVersionRepository.SetStatusMajorRevision(existingReview.PaperVersionId); } else if (reviews.Where(r => r.Recommendation == 3).Count() >= 1 && reviews.Where(r => r.Recommendation == 2).Count() >= 1) { _paperVersionRepository.SetStatusMinorRevision(existingReview.PaperVersionId); } else if (reviews.Where(r => r.Recommendation == 4).Count() >= 1 && (reviews.Where(r => r.Recommendation == 2 || r.Recommendation == 3).Count() >= 1)) { _paperVersionRepository.SetStatusMajorRevision(existingReview.PaperVersionId); } else if (reviews.Where(r => r.Recommendation > 1).Count() == 2 && reviews.Where(r => r.Recommendation == 5).Count() == 1) { //wysłac info do admina o wyborze kolejnego } StatusMessage = "Succesfully added."; return(RedirectToAction(nameof(MyReviews))); } StatusMessage = "Error. If you see this error. Contact with administrator."; return(RedirectToAction(nameof(MyReviews))); } StatusMessage = "Error. Entered data is not valid."; return(View(model)); }