public IActionResult Add(IFormCollection form) { List <bool> fieldsValidation = GetGradeFieldsValidation(form); bool dataIsValid = ValidateGradeData(form, fieldsValidation); if (!dataIsValid) { var gradeValue = GradeConverter.GetGradeString(form["GradeId"]); ViewBag.fieldsValidation = fieldsValidation; ViewBag.form = form; List <Grade> grades = Enum.GetValues(typeof(Grade)) .Cast <Grade>() .ToList(); IEnumerable <SelectListItem> selectList = from g in grades select new SelectListItem { Value = g.ToString(), Text = GradeConverter.ParseGrade(g).ToString() }; ViewData["Grades"] = new SelectList(selectList, "Value", "Text", gradeValue); return(View()); } PartialCourseGrade partialCourseGrade = new PartialCourseGrade(); int maxId = manager.GetMaxGradeId(); partialCourseGrade.PartialGradeId = maxId + 1; partialCourseGrade.GradeDate = Convert.ToDateTime(form["DataTextField"]); partialCourseGrade.GradeValue = GradeConverter.GetGradeString(form["GradeId"]); partialCourseGrade.Comment = form["ComentTextArea"]; Models.Participant participant = new Models.Participant(); Course course = new Course(); participant.ParticipantId = staticParticipantId; course.CourseId = staticCourseId; ParticipantGradeList list = manager.GetParticipantGradeList(participant, course); partialCourseGrade.ParticipantGradeList = list; manager.AddGrade(partialCourseGrade); return(RedirectToAction("Index")); }