public ActionResult Edit(int id, FormCollection collection, ProgressReviewViewModel model) { if (ModelState.IsValid) { var review = db.ProgressReviews.Find(id); if (review != null) { review.EvalDescription = model.EvalDescription; review.TotalScore = model.TotalScore; review.PREvalDescription = model.PREvalDescription; review.SelfEvaluation = model.SelfEvaluation; //review.LMId = model.LMId; review.PCId = model.PCId; review.CreationPCId = model.CreationPCId; review.AssessmentStatus = model.AssessmentStatus; review.PRCompletionStatus = model.PRCompletionStatus; review.SASubmissionDate = model.SASubmissionDate; review.PRDHApprovalStatus = model.PRDHApprovalStatus; review.PRDHApproveDate = model.PRDHApproveDate; review.PRHRAEvalDecision = model.PRHRAEvalDecision; review.PRHRAEvalDate = model.PRHRAEvalDate; review.PRDHApprovesId = model.PRDHApprovesId; review.HREvaluatesId = model.HREvaluatesId; foreach (var item in model.Competencies) { var criteria = new PerformanceCriterion { ReviewId = review.ReviewId, CompetencyId = item.Id, Score = item.Score, }; db.Entry(criteria).State = System.Data.Entity.EntityState.Modified; //db.PerformanceCriterions.Add(criteria); } db.SaveChanges(); var tscore = db.PerformanceCriterions.Where(r => r.ReviewId == review.ReviewId).Select(s => s.Score).Sum(); review.TotalScore = tscore; db.SaveChanges(); return(RedirectToAction("Index")); } else { return(HttpNotFound()); } } else { return(View()); } }
public ActionResult Create(ProgressReviewViewModel model) { if (ModelState.IsValid) { // Create the review from the model var review = new ProgressReview { ReviewId = model.Id, PCId = model.PCId, LMId = User.Identity.IsAuthenticated ? User.Identity.GetUserId <int>() : db.Users.First().Id, EvalDescription = model.EvalDescription, TotalScore = model.TotalScore, SelfEvaluation = model.SelfEvaluation, PREvalDescription = model.PREvalDescription, PRCompletionStatus = ProgressReview.CompletionStatus.Incomplete, AssessmentStatus = ProgressReview.Status.Pending, PRSubmissionDate = DateTime.Today }; //Save the created review to the database db.ProgressReviews.Add(review); db.SaveChanges(); foreach (var item in model.Competencies) { var criteria = new PerformanceCriterion { ReviewId = review.ReviewId, CompetencyId = item.Id, Score = item.Score, }; db.PerformanceCriterions.Add(criteria); //db.SaveChanges(); } db.SaveChanges(); var tscore = db.PerformanceCriterions.Where(r => r.ReviewId == review.ReviewId).Select(s => s.Score).Sum(); review.TotalScore = tscore; db.SaveChanges(); return(RedirectToAction("Index")); } return(View(model)); }