protected override void BeforeUpdate(DataRow ddr) { atriumDB.ActivityBFRow dr = (atriumDB.ActivityBFRow)ddr; if (dr.ActivityRow != null) { myA.GetProcess().SetActive(dr.ActivityRow.ProcessRow); } AllowEdit = true; BeforeChange("BFDate", ddr); AllowEdit = false; }
public void Refresh() { myFM.GetProcess().PreRefresh(); myFM.GetProcessContext().PreRefresh(); myFM.GetActivity().PreRefresh(); myFM.GetActivityBF().PreRefresh(); myFM.GetActivityTime().PreRefresh(); myFM.GetDisbursement().PreRefresh(); myFM.GetActivity().DeepLoadByFileId(myFM.CurrentFile.FileId); }
/// <summary> /// Moves a process to another file /// </summary> /// <param name="pr">process to move</param> /// <param name="toFile">Target file</param> private void Move(atriumDB.ProcessRow pr, int toFileId, atriumDB.ActivityRow splitOn) { FileManager toFM = myA.AtMng.GetFile(toFileId); //need to check permissions on target file if (!toFM.GetProcess().CanAdd(toFM.CurrentFile)) { throw new AtriumException(Properties.Resources.YouNeedAddProcessPermissionOnTheDestinationFile); } CheckMove(pr); //this needs to be here myA.GetActivity().LoadByProcessId(pr.ProcessId); //sort activities by thread atriumDB.ActivityRow[] ars = (atriumDB.ActivityRow[])myA.DB.Activity.Select("processid=" + pr.ProcessId.ToString(), "ConversationIndex"); atriumDB.ProcessRow newPr = null; int oldFileid = pr.FileId; bool moveProc = false; if (splitOn != null && ars.Length > 1 && ars[0].ActivityId != splitOn.ActivityId) { //create new process for split thread newPr = (atriumDB.ProcessRow)Add(myA.CurrentFile); newPr.Active = pr.Active; //newPr.CurrentStep = pr.CurrentStep; newPr.NameE = pr.NameE; newPr.NameF = pr.NameF; newPr.SeriesId = pr.SeriesId; //newPr.Thread = pr.Thread; } else { pr.FileId = toFileId; pr.Thread = pr.ProcessId.ToString(); moveProc = true; foreach (atriumDB.ProcessContextRow pcr in pr.GetProcessContextRows()) { pcr.FileId = toFileId; } } //move all activties on process foreach (atriumDB.ActivityRow par in pr.GetActivityRows()) { if (splitOn == null || par.ConversationIndex.CompareTo(splitOn.ConversationIndex) >= 0) { myA.GetActivity()._Move(par, toFileId); if (newPr != null) { par.ProcessId = newPr.ProcessId; } } } if (moveProc) { FileManager fmOld = myA.AtMng.GetFile(oldFileid); atriumDB.ProcessRow prOld = fmOld.DB.Process.FindByProcessId(pr.ProcessId); if (prOld != null) { prOld.Delete(); prOld.AcceptChanges(); } } }