Пример #1
0
        /// <summary>
        /// Gets called when a backend finishes loading
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void OnBackendReady(object sender, ContextUpdatedEventArgs e)
        {
            var environment = IoC.Get<EnvironmentExplorerViewModel>();

            // We need to update the environment object
            if (environment != null)
            {
                environment.OnBackendReady(sender, e);

                var item = environment.Items.FirstOrDefault(i => i.Title.Equals(e.Context.Name));
                var idx = environment.Items.IndexOf(item);

                environment.Items[idx].Items.Clear();

                if (item != null)
                {
                    var tree = e.Context.GetStructure();
                    environment.Items[idx].Icon = tree.Icon;

                    foreach (var treeItem in tree.Items)
                        environment.Items[idx].Items.Add(treeItem);
                }
            }

            bool allContextsReady = true;
            foreach (var context in _backendContexts)
            {
                if (!context.IsReady)
                {
                    allContextsReady = false;
                    break;
                }
            }

            if (allContextsReady)
                AppContext.Resolve<IStatusManager>().SetText("");

            // Cancel the spinner that shows we're loading data
            LongRunningOperation.Stop();
        }
        /// <summary>
        /// Gets called when a backend finishes loading
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void OnBackendReady(object sender, ContextUpdatedEventArgs e)
        {
            var environment = IoC.Get <EnvironmentExplorerViewModel>();

            foreach (var context in _backendContexts)
            {
                if (context.Exception != null)
                {
                    Execute.OnUIThread(() =>
                    {
                        var message = context.Exception.Message;

                        if (context.Exception.InnerException != null)
                        {
                            message += "\r\n\r\n" + context.Exception.InnerException.Message;
                        }

                        MessageBox.Show(message, "Error", MessageBoxButton.OK, MessageBoxImage.Error);
                        AppContext.Resolve <IStatusManager>().SetText("");
                        LongRunningOperation.Stop();
                    });
                }
            }

            // We need to update the environment object
            if (environment != null)
            {
                environment.OnBackendReady(sender, e);

                var item = environment.Items.FirstOrDefault(i => i.Title.Equals(e.Context.Name));
                var idx  = environment.Items.IndexOf(item);

                environment.Items[idx].Items.Clear();

                if (item != null)
                {
                    var tree = e.Context.GetStructure();
                    environment.Items[idx].Icon = tree.Icon;

                    foreach (var treeItem in tree.Items)
                    {
                        environment.Items[idx].Items.Add(treeItem);
                    }
                }
            }

            bool allContextsReady = true;

            foreach (var context in _backendContexts)
            {
                if (!context.IsReady)
                {
                    allContextsReady = false;
                    break;
                }
            }

            Execute.OnUIThread(() =>
            {
                if (allContextsReady)
                {
                    AppContext.Resolve <IStatusManager>().SetText("");
                }

                // Cancel the spinner that shows we're loading data
                LongRunningOperation.Stop();
            });
        }