public override string ToString()
        {
            s = (StartActivity)base.Tag;

            Binding myBinding = new Binding("context");

            myBinding.Mode   = BindingMode.TwoWay;
            myBinding.Source = s;
            cmbcontext.SetBinding(ComboBox.TextProperty, myBinding);

            Binding myBinding2 = new Binding("exten");

            myBinding2.Mode   = BindingMode.TwoWay;
            myBinding2.Source = s;
            txtdnis.SetBinding(TextBox.TextProperty, myBinding2);

            Binding descbinding = new Binding("Description");

            descbinding.Mode   = BindingMode.TwoWay;
            descbinding.Source = s;
            txtdesc.SetBinding(TextBox.TextProperty, descbinding);


            return(base.ToString());
        }
        /// <summary>
        /// Starts the application.
        /// This method can be called multiple times.
        /// </summary>
        /// <returns><see cref="Task"/></returns>
        public async Task Start()
        {
            if (!State.IsInitialized)
            {
                throw new InvalidOperationException($"You must call {nameof(Initialize)} before calling '{nameof(Start)}'.");
            }

            Logger.LogDebug("Starting startup.");

            var isFirstLoad = !State.IsStarted;

            if (isFirstLoad)
            {
                StartActivity.Start();
            }

            var coreStart = CoreStartup.Start();
            var viewStart = StartViewServicesWithLogs(ServiceProvider, isFirstLoad);

            await Task.WhenAll(coreStart, viewStart);

            if (isFirstLoad)
            {
                StartActivity.Stop();

                State.IsStarted = true;
            }

            Logger.LogInformation("Started startup.");

            async Task StartViewServicesWithLogs(IServiceProvider services, bool isFirstStart)
            {
                Logger.LogDebug($"Starting view services (isFirstStart: {isFirstStart}).");

                await StartViewServices(services, isFirstStart);

                Logger.LogInformation("Started view services.");
            }
        }
        public override string ToString()
        {
            s = (StartActivity)base.Tag;

            Binding myBinding = new Binding("context");
            myBinding.Mode = BindingMode.TwoWay;
            myBinding.Source = s;
            cmbcontext.SetBinding(ComboBox.TextProperty, myBinding);

            Binding myBinding2 = new Binding("exten");
            myBinding2.Mode = BindingMode.TwoWay;
            myBinding2.Source = s;
            txtdnis.SetBinding(TextBox.TextProperty, myBinding2);

            Binding descbinding = new Binding("Description");
            descbinding.Mode = BindingMode.TwoWay;
            descbinding.Source = s;
            txtdesc.SetBinding(TextBox.TextProperty, descbinding);


            return base.ToString();
        }
Esempio n. 4
0
        /// <summary>
        /// Позволяет загрузить действие по идентификатору
        /// </summary>
        /// <param name="activityId">Идентификатор действия</param>
        /// <returns>Загруженное действие</returns>
        public WorkflowActivity LoadActivityById(Guid activityId)
        {
            ActivityCacheLock.AcquireReaderLock(LockTimeout);
            try
            {
                var cached = ActivityCache.Find(activityId);
                if (cached != null)
                {
                    return(cached.CachedObject);
                }

                var lc = ActivityCacheLock.UpgradeToWriterLock(LockTimeout);
                try
                {
                    cached = ActivityCache.Find(activityId);
                    if (cached != null)
                    {
                        return(cached.CachedObject);
                    }

                    var activity = DataContext.GetEntityDataContext().Entities.Object_Defs.OfType <Workflow_Activity>()
                                   .FirstOrDefault(p => p.Id == activityId);

                    WorkflowActivity returnActivity = null;

                    if (activity is Document_Activity)
                    {
                        returnActivity = new DocumentActivity(activity as Document_Activity);
                    }

                    else if (activity is Document_State_Activity)
                    {
                        returnActivity = new DocumentStateActivity(activity as Document_State_Activity);
                    }

                    else if (activity is Presentation_Activity)
                    {
                        returnActivity = new PresentationActivity(activity as Presentation_Activity);
                    }

                    else if (activity is Script_Activity)
                    {
                        returnActivity = new ScriptActivity(activity as Script_Activity);
                    }

                    else if (activity is Finish_Activity)
                    {
                        returnActivity = new FinishActivity(activity as Finish_Activity);
                    }

                    else if (activity is Process_Call_Activity)
                    {
                        returnActivity = new ProcessCallActivity(activity as Process_Call_Activity);
                    }

                    else if (activity is Start_Activity)
                    {
                        returnActivity = new StartActivity(activity as Start_Activity);
                    }

                    else if (activity is Gate_Call_Activity)
                    {
                        returnActivity = new GateCallActivity(activity as Gate_Call_Activity);
                    }

                    if (returnActivity != null)
                    {
                        ActivityCache.Add(returnActivity, activityId);
                    }

                    return(returnActivity);
                }
                finally
                {
                    ActivityCacheLock.DowngradeFromWriterLock(ref lc);
                }
            }
            finally
            {
                ActivityCacheLock.ReleaseReaderLock();
            }
        }