Esempio n. 1
0
        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
                        {
                        }
                    }
                }
            }
        }
Esempio n. 2
0
        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);
        }