public deleteProcess ( int P_ProcessId, bool deleteDBEntries ) : string | ||
P_ProcessId | int | |
deleteDBEntries | bool | |
return | 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;
}
InFlowWFM::deleteProcess ( string companyScopeName, string processScopeName ) : string |
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"); } }