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);
        }