public ActionResult _EditRefinementState(PD_RefinementState_ViewModel model) { var _p = _db.PD_Processes.Find(model.PD_Process_Id); if (User.Identity.Name.Equals(_p.LockedBy)) { PD_FunctionState state = _db.PD_FunctionStates.Find(model.PD_Process_Id, model.PD_Subject_Id, model.Id); state.Name = model.Name; state.EndState = model.EndState; state.StartState = model.StartState; model.SelectedEditableParameters = new List<string>(); foreach (var i in model.AvailableEditableParameters) { if (i.Selected == true) model.SelectedEditableParameters.Add(i.Value); } model.SelectedReadableParameters = new List<string>(); foreach (var i in model.AvailableReadableParameters) { if (i.Selected == true) model.SelectedReadableParameters.Add(i.Text); } state.ReadableParameters = new PersistableStringCollection(); if (model.SelectedReadableParameters != null) { model.SelectedReadableParameters.ForEach(item => state.ReadableParameters.Add(item)); } state.EditableParameters = new PersistableStringCollection(); if (model.SelectedEditableParameters != null) { model.SelectedEditableParameters.ForEach(item => state.EditableParameters.Add(item)); } _db.SaveChanges(); return RedirectToAction("ViewSubject", new { processid = model.PD_Process_Id, subjectid = model.PD_Subject_Id, edit = 1 }); } else { return null; } }
public ActionResult _EditRefinementState(int processid, int subjectid, int stateid, int edit) { /* * * { "ProcessParameter": "", "Description": "wat", "RefinementParameter": "wat" } * * */ var state = _db.PD_RefinementStates.Find(processid, subjectid, stateid); PD_RefinementState_ViewModel Model = new PD_RefinementState_ViewModel() { PD_Process_Id = state.PD_Process_Id, PD_Subject_Id = state.PD_Subject_Id, Id = state.Id, Name = state.Name, EndState = state.EndState, StartState = state.StartState }; Model.RefinementParameters = new List<PD_RefinementState_ParameterLink>(); List<SelectListItem> AvailableParameters = new List<SelectListItem>(); var parameters = _db.PD_Subjects.Find(processid, subjectid).GlobalParameters; foreach (var i in parameters) { AvailableParameters.Add(new SelectListItem() { Value = i, Text = i }); } List<PD_RefinementState_ParameterLink> refparams = new List<PD_RefinementState_ParameterLink>(); PD_RefinementState_ParameterLink parl = new PD_RefinementState_ParameterLink(); JavaScriptSerializer js = new JavaScriptSerializer(); foreach (var param in state.ReadableParameters) { var c = js.Deserialize<PD_RefinementState_ParameterLink>(param); Model.RefinementParameters.Add(c); } Model.AvailableEditableParameters = AvailableParameters; ViewBag.Edit = edit; return PartialView(Model); }