public ActionResult CommitHealthAssessment(int uid, int groupID, DateTime?assessmentDate) { var item = models.GetTable <UserProfile>().Where(u => u.UID == uid).FirstOrDefault(); if (item == null) { return(Json(new { result = false, message = "學員資料錯誤!!" })); } LessonFitnessAssessment fitnessAssessment = new LessonFitnessAssessment { UID = item.UID, AssessmentDate = assessmentDate ?? DateTime.Now }; models.GetTable <LessonFitnessAssessment>().InsertOnSubmit(fitnessAssessment); foreach (var key in Request.Form.Keys.Where(k => Regex.IsMatch(k, "_\\d"))) { saveAssessment(fitnessAssessment, key); } models.SubmitChanges(); return(Json(new { result = true })); }
private void saveAssessment(LessonFitnessAssessment fitnessAssessment, string key) { int itemID = int.Parse(key.Substring(1)); var values = Request.Form[key]; if (values == (String)null || values.Count == 0) { return; } var isNew = false; var item = models.GetTable <LessonFitnessAssessmentReport>() .Where(r => r.AssessmentID == fitnessAssessment.AssessmentID && r.ItemID == itemID).FirstOrDefault(); if (item == null) { item = new LessonFitnessAssessmentReport { AssessmentID = fitnessAssessment.AssessmentID, ItemID = itemID }; isNew = true; } decimal decVal; int intVal; if (values.Count > 1 && decimal.TryParse(values[0], out decVal) && int.TryParse(values[1], out intVal)) { item.SingleAssessment = decVal; item.ByTimes = intVal; fitnessAssessment.LessonFitnessAssessmentReport.Add(item); } else if (values.Count > 0 && decimal.TryParse(values[0], out decVal)) { item.TotalAssessment = decVal; fitnessAssessment.LessonFitnessAssessmentReport.Add(item); } else { if (!isNew) { models.GetTable <LessonFitnessAssessmentReport>().DeleteOnSubmit(item); } } }