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); } } ); }; }
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(); } ); }
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(); } ); }
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(); } ); }
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); } } ); } }
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)); } }; }
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); } }