strICT.InFlow.WFM.Utilities.InFlowWFM.deleteProcess C# (CSharp) Méthode

deleteProcess() public méthode

public deleteProcess ( int P_ProcessId, bool deleteDBEntries ) : string
P_ProcessId int
deleteDBEntries bool
Résultat string
        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;
        }

Same methods

InFlowWFM::deleteProcess ( string companyScopeName, string processScopeName ) : string

Usage Example

        public ActionResult DeleteFull(int ProcessId, int ProjectFilter)
        {
            try
            {
                string wfmBaseAddress = ConfigurationSettings.AppSettings["wfmBaseAddress"].ToString();
                string wfmUsername = ConfigurationSettings.AppSettings["wfmUsername"].ToString();
                string wfmPassword = ConfigurationSettings.AppSettings["wfmPassword"].ToString();
                string sqlConnectionString = ConfigurationSettings.AppSettings["repositoryConnectionString"].ToString();


                InFlowWFM wfm = new InFlowWFM(wfmBaseAddress, wfmUsername, wfmPassword, sqlConnectionString);

                wfm.deleteProcess(ProcessId, true);

                return RedirectToAction("Index", new { projectId = ProjectFilter });
            }
            catch (Exception e)
            {
                ViewBag.Error = e.Message;
                while (e.InnerException != null)
                {
                    e = e.InnerException;
                    ViewBag.Error = ViewBag.Error + e.Message;
                }
                return View("Error");
            }
        }
All Usage Examples Of strICT.InFlow.WFM.Utilities.InFlowWFM::deleteProcess