private void newDialog_DialogClosed(object sender, EventArgs e) { inputDialog.DialogClosed -= newDialog_DialogClosed; if (inputDialog.DialogResult) { if (!string.IsNullOrEmpty(inputDialog.InputText)) { string s = inputDialog.InputText.Trim(); if (s.Length > 0) { if ((from a in Manager.Instance.ActionFlows where string.Compare(a.Name, s, true) == 0 select a).Count() == 0) { ActionFlow af = new ActionFlow(); af.Name = inputDialog.InputText; Settings.Settings.Default.ActionBuilderFlowID++; af.ID = string.Format("actbuildf{0}", Settings.Settings.Default.ActionBuilderFlowID); af.Actions = new List <ActionImplementation>(); var obj = new ActionStart(); obj.ID = Guid.NewGuid().ToString("N"); af.Actions.Add(obj); Manager.Instance.ActionFlows.Add(af); ActiveActionFlow = af; SaveData(); } else { } } } } }
public void RunFlow(ActionFlow flow, Database.DBCon db) { List <ActionImplementation> orderedActions = null; try { ApplicationData.Instance.StatusText = string.Format("{0} {1}", Localization.TranslationManager.Instance.Translate("StartingFlow"), flow.Name); orderedActions = flow.Actions.OrderByDescending(x => x.Priority).ToList(); int id = 0; foreach (ActionImplementation ai in orderedActions) { id++; ApplicationData.Instance.StatusText = string.Format("{0} {1}", Localization.TranslationManager.Instance.Translate("PreparingAction"), Localization.TranslationManager.Instance.Translate(ai.Name)); ai.PrepareRun(db, string.Format("gskwrp{0}", id)); } //find start and run ActionStart startAction = (from a in flow.Actions where a is ActionStart select a).FirstOrDefault() as ActionStart; startAction.Run(null); } finally { foreach (ActionImplementation ai in orderedActions) { ApplicationData.Instance.StatusText = string.Format("{0} {1}", Localization.TranslationManager.Instance.Translate("FinishingAction"), Localization.TranslationManager.Instance.Translate(ai.Name)); ai.FinalizeRun(); } } ApplicationData.Instance.StatusText = string.Format("{0} {1}", Localization.TranslationManager.Instance.Translate("FinishedFlow"), flow.Name); }