Exemplo n.º 1
0
        public StatisticsMainView()
        {
            InitializeComponent();

            listItems.SelectionChanged      += ListItemsView_SelectionChanged;
            datesRangeView.SelectionChanged += (o, e) => Refresh();
            Loaded += (o, args) =>
            {
                StuckUILoadingWindow.Show("Загрузка информации...",
                                          () => {
                    try
                    {
                        var registrationInfo = StatisticsManager
                                               .GetRegistrationInfo(ScenariosRepository.Scenarios);
                        var registered = ScenariosRepository.Scenarios
                                         .Where(x => registrationInfo.IsRegistered(x.Id))
                                         .Select(x => StatisticsManager.GetStatisticsInfoForScenario(x, SystemActionSource))
                                         .ToArray();
                        datesRangeView.Min = registered.Any() ? registered.Min(x => x.Since) : DateTime.Now;
                        datesRangeView.Max = DateTime.Now;
                        datesRangeView.DateSelectionItem = new Common.DateSelectionItem(DateSelection.Last24Hours);
                    }
                    catch (Exception e)
                    {
                        Log.Error("Ошибка во время загрузки статистики", e);
                    }
                }
                                          );
            };
        }
Exemplo n.º 2
0
 public void SetTrigger(Lazurite.MainDomain.TriggerBase trigger, Action callback = null)
 {
     StuckUILoadingWindow.Show(
         "Компоновка окна...",
         () =>
     {
         if (trigger != null)
         {
             _originalTrigger = trigger;
             _clonedTrigger   = (Lazurite.MainDomain.TriggerBase)Lazurite.Windows.Utils.Utils.CloneObject(_originalTrigger);
             _clonedTrigger.Initialize();
             buttonsView.SetTrigger(_clonedTrigger);
             IsModified                 = false;
             _constructorView           = new TriggerView(_clonedTrigger);
             _constructorView.Modified += () => Modified?.Invoke();
             _constructorView.Modified += () => buttonsView.TriggerModified();
             _constructorView.Modified += () => IsModified = true;
             _constructorView.Failed   += () => buttonsView.Failed();
             _constructorView.Succeed  += () => buttonsView.Success();
             contentPresenter.Content   = _constructorView;
             EmptyTriggerModeOff();
         }
         else
         {
             EmptyTriggerModeOn();
         }
         callback?.Invoke();
     }
         );
 }
Exemplo n.º 3
0
 private void ItemView2_Click(object sender, RoutedEventArgs e)
 {
     StuckUILoadingWindow.Show("Загрузка иконок...",
                               () =>
     {
         var switchIconSelect      = new SwitchIconSelect(((ScenarioModel)DataContext), true);
         var dialog                = new DialogView(switchIconSelect);
         dialog.Caption            = "Выберите иконку, которая будет отображаться над переключателем. Для поиска нужной иконки начните вводить текст в поле ввода.";
         switchIconSelect.OkClick += (o, args) => dialog.Close();
         dialog.Show();
     }
                               );
 }
Exemplo n.º 4
0
 public void SetScenario(ScenarioBase scenario, Action callback = null)
 {
     StuckUILoadingWindow.Show(
         "Компоновка окна...",
         () =>
     {
         if (scenario != null)
         {
             try
             {
                 _originalSenario = scenario;
                 _clonedScenario  = (ScenarioBase)Lazurite.Windows.Utils.Utils.CloneObject(_originalSenario);
                 _clonedScenario.InitializeAsync();
                 if (scenario is SingleActionScenario)
                 {
                     contentPresenter.Content = _constructorView = new SingleActionScenarioView((SingleActionScenario)_clonedScenario);
                 }
                 else if (scenario is RemoteScenario)
                 {
                     contentPresenter.Content = _constructorView = new RemoteScenarioView((RemoteScenario)_clonedScenario);
                 }
                 else if (scenario is CompositeScenario)
                 {
                     contentPresenter.Content = _constructorView = new CompositeScenarioView((CompositeScenario)_clonedScenario);
                 }
                 buttonsView.SetScenario(_clonedScenario);
                 IsModified = false;
                 _constructorView.Modified += () => Modified?.Invoke();
                 _constructorView.Modified += () => buttonsView.ScenarioModified();
                 _constructorView.Modified += () => IsModified = true;
                 _constructorView.Failed   += () => buttonsView.Failed();
                 _constructorView.Succeed  += () => buttonsView.Success();
                 EmptyScenarioModeOff();
             }
             catch (Exception e)
             {
                 Log.ErrorFormat(e, "Ошибка инициализации сценария {0}", scenario.Name);
             }
         }
         else
         {
             EmptyScenarioModeOn();
         }
         callback?.Invoke();
     }
         );
 }
Exemplo n.º 5
0
        private void Refresh()
        {
            if (_currentView == null)
            {
                AppendView(new DiagramView());
            }
            else
            {
                var dateSince = datesRangeView.DateSelectionItem.Start;
                var dateTo    = datesRangeView.DateSelectionItem.End;

                StuckUILoadingWindow.Show("Загрузка информации...",
                                          () => {
                    try
                    {
                        var registrationInfo = StatisticsManager
                                               .GetRegistrationInfo(
                            ScenariosRepository
                            .Scenarios
                            .Where(z =>
                                   _filter.All ||
                                   (_filter.ScenariosIds?.Contains(z.Id) ?? false))
                            .ToArray());

                        var items = ScenariosRepository
                                    .Scenarios
                                    .Where(x => registrationInfo.IsRegistered(x.Id))
                                    .Select(x => StatisticsManager.GetStatisticsInfoForScenario(x, SystemActionSource))
                                    .SelectMany(x => StatisticsManager.GetItems(x, dateSince, dateTo, SystemActionSource))
                                    .OrderByDescending(x => x.DateTime)
                                    .ToArray();
                        _currentView.RefreshItems(items, dateSince, dateTo);
                    }
                    catch (Exception e)
                    {
                        Log.Error("Ошибка во время загрузки статистики", e);
                    }
                }
                                          );
            }
        }
Exemplo n.º 6
0
        public SelectScenarioView(string selectedScenarios)
        {
            InitializeComponent();

            StuckUILoadingWindow.Show("Загрузка данных...",
                                      () => {
                var registrationInfo = StatisticsManager
                                       .GetRegistrationInfo(ScenariosRepository.Scenarios);

                var registeredScenarios = ScenariosRepository
                                          .Scenarios
                                          .Where(x => registrationInfo.IsRegistered(x.Id))
                                          .ToArray();

                foreach (var scenario in registeredScenarios)
                {
                    var item        = new ItemView();
                    item.Icon       = Icons.Icon.ChevronRight;
                    item.Selectable = true;
                    item.Content    = scenario.Name.Length > 57 ? scenario.Name.Substring(0, 55) + "..." : scenario.Name;
                    item.Tag        = scenario.Id;
                    item.Margin     = new Thickness(2, 2, 2, 0);
                    item.Selected   = selectedScenarios?.Contains(scenario.Id) ?? false;
                    itemsList.Children.Add(item);
                }

                if (registeredScenarios.Any())
                {
                    lblEmpty.Visibility = Visibility.Collapsed;
                }
            });

            itemsList.SelectionChanged += (o, e) =>
            {
                if (itemsList.SelectedItem != null)
                {
                    Selected?.Invoke(this, new EventsArgs <string>(SelectedId));
                }
            };
        }
Exemplo n.º 7
0
        public async Task <bool> SetScenario(ScenarioBase scenario)
        {
            if (scenario != null)
            {
                using (StuckUILoadingWindow.Loading("Компоновка окна..."))
                {
                    try
                    {
                        _originalSenario = scenario;
                        _clonedScenario  = (ScenarioBase)Lazurite.Windows.Utils.Utils.CloneObject(_originalSenario);
                        if (_clonedScenario is SingleActionScenario s)
                        {
                            await _clonedScenario.Initialize();

                            contentPresenter.Content = _constructorView = new SingleActionScenarioView(s);
                        }
                        else if (_clonedScenario is CompositeScenario c)
                        {
                            await _clonedScenario.Initialize();

                            contentPresenter.Content = _constructorView = new CompositeScenarioView(c);
                        }
                        else if (_clonedScenario is RemoteScenario r)
                        {
                            contentPresenter.Content = _constructorView = new RemoteScenarioView(r);
                        }

                        buttonsView.SetScenario(_clonedScenario);
                        IsModified = false;
                        _constructorView.Modified += () =>
                        {
                            Modified?.Invoke();
                            buttonsView.ScenarioModified();
                            IsModified = true;
                        };
                        _constructorView.Failed += () =>
                        {
                            buttonsView.Failed();
                            IsFailed = true;
                        };
                        _constructorView.Succeed += () =>
                        {
                            buttonsView.Success();
                            IsFailed = false;
                        };
                        EmptyScenarioModeOff();
                        return(true);
                    }
                    catch (Exception e)
                    {
                        EmptyScenarioModeOn();
                        Log.Error($"Ошибка инициализации сценария [{scenario.Name}]", e);
                        return(false);
                    }
                }
            }
            else
            {
                EmptyScenarioModeOn();
                return(false);
            }
        }