示例#1
0
        public string deleteProcess(int P_ProcessId, bool deleteDBEntries)
        {
            InFlowDb _db       = new InFlowDb(cfgSQLConnectionString);
            var      p_Process = _db.P_Processes.Find(P_ProcessId);


            WorkflowManagementClient client = new WorkflowManagementClient(new Uri(cfgWFMBaseAddress + p_Process.WFM_RootScope + p_Process.WFM_ProcessScope + "/"), credentials);

            client.CleanUp();

            if (deleteDBEntries)
            {
                var p_ProcessInstances = _db.P_ProcessInstance.Where(result => result.P_Process_Id == p_Process.Id).ToList();
                foreach (var i in p_ProcessInstances)
                {
                    _db.T_Tasks.RemoveRange(_db.T_Tasks.Where(result => result.P_ProcessInstance_Id == i.Id));
                    _db.M_Messages.RemoveRange(_db.M_Messages.Where(result => result.ProcessInstance_Id == i.Id));
                }

                _db.P_ProcessInstance.RemoveRange(p_ProcessInstances);

                var p_ProcessSubjects = _db.P_ProcessSubjects.Where(result => result.Process_Id == p_Process.Id).ToList();
                foreach (var ps in p_ProcessSubjects)
                {
                    _db.P_WorkflowInstances.RemoveRange(_db.P_WorkflowInstances.Where(result => result.ProcessSubject_Id == ps.Id));
                }
                _db.P_ProcessSubjects.RemoveRange(p_ProcessSubjects);
                _db.P_Processes.Remove(p_Process);

                _db.SaveChanges();
            }

            return(p_Process.WFM_RootScope + p_Process.WFM_ProcessScope);
        }
示例#2
0
        public void setBool(string key, bool value)
        {
            C_Property property = db.C_Properties.Find(key);

            if (property == null)
            {
                property = new C_Property {
                    Key = key, Type = PropertyTypes.BOOL, Value = value.ToString()
                };
                db.C_Properties.Add(property);
            }
            else
            {
                if (isBool(property))
                {
                    property.Value = value.ToString();
                }
            }
            db.SaveChanges();
        }
示例#3
0
        public void write(string data)
        {
            Request.InputStream.Seek(0, SeekOrigin.Begin);
            string jsonData  = new StreamReader(Request.InputStream).ReadToEnd();
            String subject   = jsonData.Split('<')[0];
            int    subjectId = Int32.Parse(subject);
            String xaml      = jsonData.Substring(subject.Length);

            _db.WS_Subjects.Find(subjectId).Xaml_Data = xaml;
            _db.SaveChanges();
        }
示例#4
0
        public void setTaskAsSeen(int taskId)
        {
            var query = from t in db.T_Tasks
                        where t.Id == taskId
                        select t;

            foreach (var item in query)
            {
                if (item.Done == true)
                {
                    item.Seen = true;
                }
            }
            db.SaveChanges();
        }
示例#5
0
        public int translateToXaml(int projectid, int modelid)
        {
            var process = _pdesignerDB.PD_Processes.Find(modelid);
            var project = _inflowDB.WS_Projects.Find(projectid);

            _inflowDB.WS_Subjects.RemoveRange(project.Subjects);

            int subjects = 0;

            foreach (var subject in process.Subjects)
            {
                WS_Subject s = new WS_Subject()
                {
                    Name = subject.Name, CanBeStarted = subject.CanBeStarted, MultiSubject = subject.MultiSubject
                };
                s.Xaml_Data = buildXaml(process, subject);
                project.Subjects.Add(s);
                subjects++;
            }

            _inflowDB.SaveChanges();

            return(subjects);
        }
示例#6
0
 public void addNewProcess(P_Process p)
 {
     db.P_Processes.Add(p);
     db.SaveChanges();
 }
示例#7
0
 public ActionResult DeleteFolder(int folderId)
 {
     _db.WS_Folders.Remove(_db.WS_Folders.Find(folderId));
     _db.SaveChanges();
     return(View("Index"));
 }
示例#8
0
 public int addMessage(M_Message message)
 {
     db.M_Messages.Add(message);
     db.SaveChanges();
     return(message.Id);
 }
        public ActionResult Group_Edit(EditGroupViewModel model)
        {
            U_FunctionGroup _group;

            if (model.GroupId == -1)
            {
                _group = new U_FunctionGroup()
                {
                    Name = model.GroupName
                };
                _inFlowDb.U_FunctionGroups.Add(_group);
                _inFlowDb.SaveChanges();
            }
            else
            {
                _group = _inFlowDb.U_FunctionGroups.Find(model.GroupId);
            }

            if (!_group.Name.Equals(model.GroupName))
            {
                _group.Name = model.GroupName;
            }


            //users
            List <string> oldAssignedUsers = new List <string>();
            List <string> newAssignedUsers = new List <string>();

            if (model.SelectedUsers != null)
            {
                newAssignedUsers = new List <string>(model.SelectedUsers);
            }

            _group.Users.ToList().ForEach(u => oldAssignedUsers.Add(u.Username));

            List <string> usersToAssign = new List <string>(newAssignedUsers.Except(oldAssignedUsers));

            List <string> usersToRemove = new List <string>(oldAssignedUsers.Except(newAssignedUsers));

            usersToAssign.ForEach(username => _inFlowDb.U_User_FunctionGroups.Add(new strICT.InFlow.Db.Contracts.InFlow.U_User_FunctionGroup {
                FunctionGroup = _group, Username = username
            }));

            foreach (string username in usersToRemove)
            {
                var item = _inFlowDb.U_User_FunctionGroups.First(fg => fg.Username == username && fg.FunctionGroup_Id == _group.Id);
                _inFlowDb.U_User_FunctionGroups.Remove(item);
            }

            //roles
            List <int> oldAssignedRoles = new List <int>();
            List <int> newAssignedRoles = new List <int>();

            if (model.SelectedRoles != null)
            {
                (new List <string>(model.SelectedRoles)).ForEach(id => newAssignedRoles.Add(Int16.Parse(id)));
            }

            _group.Roles.ToList().ForEach(r => oldAssignedRoles.Add(r.Id));

            List <int> rolesToAssign = new List <int>(newAssignedRoles.Except(oldAssignedRoles));

            List <int> rolesToRemove = new List <int>(oldAssignedRoles.Except(newAssignedRoles));

            rolesToAssign.ForEach(role => _group.Roles.Add(_inFlowDb.U_Roles.Find(role)));

            rolesToRemove.ForEach(role => _group.Roles.Remove(_inFlowDb.U_Roles.Find(role)));

            //save and return
            _inFlowDb.SaveChanges();

            return(RedirectToAction("GroupsRoles"));
        }
示例#10
0
 public ActionResult Deactivate(int ProcessId, int ProjectFilter)
 {
     _db.P_Processes.Find(ProcessId).Active = false;
     _db.SaveChanges();
     return(RedirectToAction("Index", new { projectId = ProjectFilter }));
 }