public async Task <ActionResult> Create(DEInspectField inspectField, FormCollection collection) { // Set variables var areaId = inspectField.AreaId; var cycleId = inspectField.CycleId; var classId = inspectField.ClassId; var itemId = inspectField.ItemId; int fieldCount = db.DEInspectField.Count(fc => fc.AreaId == areaId && fc.CycleId == cycleId && fc.ClassId == classId && fc.ItemId == itemId); int fieldId = fieldCount + 1; inspectField.FieldId = fieldId; if (ModelState.IsValid) { /* for datatype dropdownlist, and dynamic inset textbox. */ if (inspectField.DataType == "dropdownlist") { var inputCount = 0; if (int.TryParse(collection["TextBoxCount"], out inputCount)) { for (int i = 1; i <= inputCount; i++) { if (!string.IsNullOrWhiteSpace(collection["textbox" + i])) { DEInspectFieldDropDown inspectFieldDropDown = new DEInspectFieldDropDown { AreaId = areaId, CycleId = cycleId, ClassId = classId, ItemId = itemId, FieldId = fieldId, Value = collection["textbox" + i] }; db.DEInspectFieldDropDown.Add(inspectFieldDropDown); } } } } inspectField.Rtp = WebSecurity.CurrentUserId; inspectField.Rtt = DateTime.Now; db.DEInspectField.Add(inspectField); db.SaveChanges(); return(RedirectToAction("GetFieldList", new { AreaId = areaId, CycleId = cycleId, ClassId = classId, ItemId = itemId })); } return(RedirectToAction("GetFieldList", new { AreaId = areaId, CycleId = cycleId, ClassId = classId, ItemId = itemId })); }
public async Task <ActionResult> Edit(DEInspectField inspectField, FormCollection collection) { var areaId = inspectField.AreaId; var cycleId = inspectField.CycleId; var classId = inspectField.ClassId; var itemId = inspectField.ItemId; var fieldId = inspectField.FieldId; if (ModelState.IsValid) { if (inspectField.DataType == "dropdownlist") { int boxCount = int.Parse(collection["TextBoxCount"]); for (int j = 1; j <= boxCount; j++) { if (string.IsNullOrWhiteSpace(collection["textbox" + j])) { throw new Exception("下拉選單的項目尚未輸入任何內容。"); } } /* for datatype dropdownlist, and dynamic inset textbox. */ var inputCount = 0; var DropDownList = db.DEInspectFieldDropDown.Where(i => i.AreaId == areaId && i.CycleId == cycleId && i.ClassId == classId && i.ItemId == itemId && i.FieldId == fieldId).OrderBy(i => i.Id); if (int.TryParse(collection["TextBoxCount"], out inputCount)) { // If insert data is more than origin. if (inputCount > DropDownList.Count()) { var i = 1; foreach (var item in DropDownList) { if (!string.IsNullOrWhiteSpace(collection["textbox" + i])) { item.Value = collection["textbox" + i]; db.Entry(item).State = EntityState.Modified; } i++; } for (int j = i; j <= inputCount; j++) { if (!string.IsNullOrWhiteSpace(collection["textbox" + j])) { DEInspectFieldDropDown inspectFieldDropDown = new DEInspectFieldDropDown { AreaId = areaId, CycleId = cycleId, ClassId = classId, ItemId = itemId, FieldId = fieldId, Value = collection["textbox" + j] }; db.DEInspectFieldDropDown.Add(inspectFieldDropDown); } } } else if (inputCount < DropDownList.Count()) { var i = 1; foreach (var item in DropDownList) { if (!string.IsNullOrWhiteSpace(collection["textbox" + i])) { if (i <= inputCount) { item.Value = collection["textbox" + i]; db.Entry(item).State = EntityState.Modified; } } else { db.DEInspectFieldDropDown.Remove(item); } i++; } } else { var i = 1; foreach (var item in DropDownList) { if (!string.IsNullOrWhiteSpace(collection["textbox" + i])) { item.Value = collection["textbox" + i]; db.Entry(item).State = EntityState.Modified; } i++; } } } } inspectField.Rtp = WebSecurity.CurrentUserId; inspectField.Rtt = DateTime.Now; db.Entry(inspectField).State = EntityState.Modified; db.SaveChanges(); return(RedirectToAction("GetFieldList", new { AreaId = areaId, CycleId = cycleId, ClassId = classId, ItemId = itemId })); } return(RedirectToAction("GetFieldList", new { AreaId = areaId, CycleId = cycleId, ClassId = classId, ItemId = itemId })); }