AssessmentAnywhere.Controllers.AssessmentGradeBoundariesController.Update C# (CSharp) Метод

Update() приватный Метод

private Update ( System.Guid id, UpdateModel model ) : System.Web.Mvc.ActionResult
id System.Guid
model AssessmentAnywhere.Models.AssessmentGradeBoundaries.UpdateModel
Результат System.Web.Mvc.ActionResult
        public ActionResult Update(Guid id, UpdateModel model)
        {
            // Validate
            model.Validate(this.ModelState);

            var assessment = this.assessmentsRepo.Open(id);

            if (!ModelState.IsValid)
            {
                var editBoundaries = model.Boundaries.Select(b => new GradeBoundary(b.Grade, b.MinResult)).ToList();
                var newBoundary = (model.NewBoundary == null)
                                      ? GradeBoundary.New
                                      : new GradeBoundary(model.NewBoundary.Grade, model.NewBoundary.MinResult);
                var viewModel = new EditModel(id, assessment.Name, model.TotalMarks, editBoundaries, newBoundary);

                return this.View("Edit", viewModel);
            }

            // ReSharper disable PossibleInvalidOperationException
            var boundariesToSave = model.Boundaries.Select(b => new Boundary(b.Grade, b.MinResult.Value)).ToList();
            if (model.HasNewBoundary)
            {
                boundariesToSave.Add(new Boundary(model.NewBoundary.Grade, model.NewBoundary.MinResult.Value));
            }
            // ReSharper restore PossibleInvalidOperationException

            // Write changes to repos.
            bool hasBoundaries;
            var boundaries = this.gradeBoundariesRepo.TryOpen(id, out hasBoundaries);

            if (!hasBoundaries)
            {
                boundaries = this.gradeBoundariesRepo.Create(id);
            }

            if (model.TotalMarks != assessment.TotalMarks)
            {
                assessment.SetTotalMarks(model.TotalMarks);
            }

            boundaries.SetBoundaries(boundariesToSave);

            return this.RedirectToAction("Edit", new { id });
        }
AssessmentGradeBoundariesController