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)));
        }
コード例 #2
0
        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));
        }