public ActionResult _EditMessageTypesList(int processid, int edit)
        {
            List<PD_MessageTypeDTO_ViewModel> Model = new List<PD_MessageTypeDTO_ViewModel>();

            var msgtypes = _db.PD_MessageTypes.Where(result => result.PD_Process_Id == processid).ToList();
            foreach (var i in msgtypes)
            {
                var type = new PD_MessageTypeDTO_ViewModel() { Id = i.Id, PD_Process_Id = i.PD_Process_Id, Name = i.Name };
                Model.Add(type);
            }
            ViewBag.ProcessId = processid;
            ViewBag.Edit = edit;
          
            return PartialView(Model);
        }
        public ActionResult _EditMessageType(int processid, int id, int edit)
        {
            PD_MessageTypeDTO_ViewModel model;
            if (id > 0)
            {
                var i = _db.PD_MessageTypes.Find(processid, id);

                model = new PD_MessageTypeDTO_ViewModel() { Id = i.Id, PD_Process_Id = i.PD_Process_Id, Name = i.Name, Parameters = new List<PD_Parameter_ViewModel>() };

                model.Parameters = listofStringParametersToViewModel(processid, i.Parameters);
            }
            else
            {
                model = new PD_MessageTypeDTO_ViewModel() { PD_Process_Id = processid, Name = "New", Parameters = new List<PD_Parameter_ViewModel>() };
            }

            ViewBag.Edit = edit;
            model.newName = model.Name;
            return PartialView(model);
        }
        public ActionResult _EditMessageType(PD_MessageTypeDTO_ViewModel model)
        {
             var _p = _db.PD_Processes.Find(model.PD_Process_Id);
             if (User.Identity.Name.Equals(_p.LockedBy))
             {
                 PD_MessageType type;
                 if (model.Id >= 0)
                 {
                     type = _db.PD_MessageTypes.Find(model.PD_Process_Id, model.Id);
                 }
                 else
                 {
                     type = new PD_MessageType() { PD_Process_Id = model.PD_Process_Id };
                     type.Id = IdHelper.getMessageTypeId(_db, model.PD_Process_Id);
                 }
                 type.Name = model.newName;
                 
                 /*
                 string[] para = model.Parameters.Split(',');
                 type.Parameters = new PersistableStringCollection();
                 para.ToList().ForEach(i => type.Parameters.Add(i));*/

                 if (model.Id < 0)
                 {
                     _db.PD_MessageTypes.Add(type);
                 }
                 else
                 {
                     var messages = _db.PD_Messages.Where(result => result.PD_MessageType_Id == type.Id && result.PD_Process_Id == type.PD_Process_Id);
                     messages.ToList().ForEach(i => updateGlobalparameters(i));
                 }

                 _db.SaveChanges();

                 return RedirectToAction("ViewProcess", new { processid = model.PD_Process_Id , edit = 1});
             }
             else
             {
                 return null;
             }
        }
        public ActionResult _EditImportedSubjects(int processidNew, int processidOld, int edit)
        {

            var subjects = _db.PD_Subjects.Where(result => result.PD_Process_Id == processidNew).ToList();
            
            List<PD_MessageTypeDTO_ViewModel> Model = new List<PD_MessageTypeDTO_ViewModel>();
            foreach (var i in subjects)
            {
                var type = new PD_MessageTypeDTO_ViewModel() { PD_Process_Id = i.PD_Process_Id, Name = i.Name, Id = i.Id };
                Model.Add(type);
            }
            ViewBag.ProcessId = processidOld;
            ViewBag.Edit = edit;

            return PartialView(Model);
        }
        public ActionResult _EditImportedProcesses(int processid, int edit)
        {

            var processes = _db.PD_Processes.Where(result => result.Id != processid).ToList();
            var processes2 = processes.OrderBy(result => result.Name).ToList();
            var aux = 0;
            List<PD_MessageTypeDTO_ViewModel> Model = new List<PD_MessageTypeDTO_ViewModel>();
            foreach (var i in processes2)
            {
                var p = _idb.WS_ModelVersions.Where(result => result.PD_ProcessId == i.Id);
                foreach (var j in p) { aux = j.Version; }//patch
                var type = new PD_MessageTypeDTO_ViewModel() { PD_Process_Id = i.Id, Name = i.Name, newName = aux.ToString() };
                Model.Add(type);
            }
            ViewBag.ProcessId = processid;
            ViewBag.Edit = edit;

            return PartialView(Model);
        }