private void ExportClick(object sender, RoutedEventArgs e) { var sfd = new SaveFileDialog(); sfd.Filter = "Таблица MS Excel (*.xlsx)|*.xlsx"; sfd.FileName = "smarthome_data"; if (sfd.ShowDialog() == DialogResult.OK) { try { gridControl.ExportToExcel(sfd.FileName, ExcelVersion.Excel2007); MessageView.ShowYesNo(string.Format("Экспортировано успешно.\r\nОткрыть файл [{0}]?", sfd.FileName), "Экспорт", Icons.Icon.OfficeExcel, (result) => { if (result) { Process.Start(sfd.FileName); } }); } catch (Exception exception) { Log.Error(exception.Message, exception); } } }
private void ThroughTriggerSave(Action callback) { if (constructorsResolver.GetTrigger() != null && constructorsResolver.IsModified && _lastDeletedTrigger != constructorsResolver.GetTrigger()) { MessageView.ShowYesNo( "Сохранить изменения триггера [" + constructorsResolver.GetTrigger().Name + "]?", "Окно редактирования текущего триггера будет закрыто", Icon.Save, (result) => { if (result) { constructorsResolver.Apply(() => callback?.Invoke()); } else { callback?.Invoke(); } }); } else { callback?.Invoke(); } }
private void ThroughScenarioSave(Action callback) { if (constructorsResolver.GetScenario() != null && constructorsResolver.IsModified && !constructorsResolver.IsFailed && _lastDeletedScenario != constructorsResolver.GetScenario()) { switchesGrid.CancelDragging(); MessageView.ShowYesNo( $"Сохранить изменения сценария [{constructorsResolver.GetScenario().Name}]?", "Окно редактирования текущего сценария будет закрыто", Icon.Save, (result) => { if (result) { constructorsResolver.Apply(() => callback?.Invoke(), false); } else { callback?.Invoke(); } }); } else { callback?.Invoke(); } }
private void ExportClick(object sender, RoutedEventArgs e) { var sfd = new SaveFileDialog(); sfd.Filter = "Файл таблицы CSV (*.csv)|*.csv"; sfd.FileName = "Статистика_Lazurite"; if (sfd.ShowDialog() == DialogResult.OK) { try { using (var writer = new StreamWriter(sfd.FileName, false, Encoding.UTF8)) using (var csv = new CsvWriter(writer)) csv.WriteRecords(_items); MessageView.ShowYesNo($"Экспортировано успешно.\r\nОткрыть файл [{sfd.FileName}]?", "Экспорт", Icons.Icon.Table, (result) => { if (result) { Process.Start(sfd.FileName); } }); } catch (Exception exception) { Log.Error(exception.Message, exception); } } }
public async void Apply(Action callback = null, bool reset = true) { if (Repository.Scenarios.Any(x => x.Id == _originalSenario.Id) && _originalSenario.ValueType != null && !_originalSenario.ValueType.IsCompatibleWith(_clonedScenario.ValueType)) { MessageView.ShowYesNo( "Сценарий был изменен так, что тип изначального сценария не совместим с типом текущего сценария.\r\n" + "Если на этот сценарий ссылаются удаленные или комплексные сценарии, то они могут выполняться с ошибкой.\r\n" + "Сохранить сценарий?", "Сохранение сценария", Icons.Icon.Warning, async(result) => { if (result) { await ApplyInternal(reset); } callback?.Invoke(); }); } else { await ApplyInternal(reset); callback?.Invoke(); } }
private void btRemovePlugin_Click(object sender, RoutedEventArgs e) { MessageView.ShowYesNo("Вы уверены что хотите удалить плагин [" + SelectedPlugin.Name + "]?", "Удаленеи плагина", Icons.Icon.Delete, (result) => { if (result) { var canRemoveResult = _manager.CanRemovePlugin(SelectedPlugin.Name); if (!canRemoveResult.CanRemove) { MessageView.ShowMessage(string.Format("Невозможно удалить плагин \r\n[{0}];\r\nПричина: {1}", SelectedPlugin.Name, canRemoveResult.Message), "Внимание!", Icon.Warning); } else { try { _manager.RemovePlugin(SelectedPlugin.Name); Refresh(); MessageView.ShowMessage("Плагин удален. Повторно добавить этот плагин можно будет при следующем запуске программы.", "Удаление плагина", Icon.Warning); } catch (Exception exception) { _warningHandler.WarnFormat(exception, "Невозможно удалить плагин \r\n[{0}]", SelectedPlugin.Name); } } } }); }
public ScenarioConstructorButtonsView() { InitializeComponent(); btApply.Click += (o, e) => { MessageView.ShowYesNo("Вы уверены что хотите применить изменения сценария?", "Изменения сценария", Icons.Icon.Question, (result) => { if (result) { ApplyClicked?.Invoke(); btCancel.IsEnabled = btApply.IsEnabled = false; } }); }; btCancel.Click += (o, e) => { MessageView.ShowYesNo("Вы уверены что хотите отменить все изменения сценария?", "Изменения сценария", Icons.Icon.Question, (result) => { if (result) { ResetClicked?.Invoke(); } }); }; tbName.TextChanged += (o, e) => { _scenario.Name = tbName.Text; ScenarioModified(); }; btOnlyGetValue.Click += (o, e) => { _scenario.OnlyGetValue = btOnlyGetValue.Selected; ScenarioModified(); }; btSecurity.Click += (o, e) => { ScenarioSecurityManagementView.Show(_scenario, () => ScenarioModified()); }; }
private void btDeleteScenario_Click(object sender, RoutedEventArgs e) { MessageView.ShowYesNo("Вы уверены что хотите удалить выбранный триггер?", "Удаление триггера", Icon.ListDelete, (result) => { if (result) { var trigger = triggersListView.SelectedTrigger; try { _repository.RemoveTrigger(trigger); _lastDeletedTrigger = trigger; triggersListView.Remove(trigger); } catch (Exception exception) { MessageView.ShowMessage(exception.Message, "Невозможно удалить триггер", Icon.Warning); _warningHandler.Warn("Невозможно удалить триггер", exception); } } } ); }
public GroupsListView() { InitializeComponent(); Refresh(); btAdd.Click += (o, e) => { var group = new UserGroup(); AddGroupView.Show( () => { _repository.Add(group); AddInternal(group); }, (args) => args.Success = !_repository.Groups.Any(x => x.Name.Equals(args.Name)), group ); }; btRemove.Click += (o, e) => { MessageView.ShowYesNo("Вы уверены что хотите удалить выбранные группы?", "Удаление групп", Icons.Icon.GroupDelete, (result) => { if (result) { var selectedGroups = SelectedGroupsIds.Select(x => _repository.Groups.First(z => z.Name.Equals(x))); foreach (var group in selectedGroups) { Remove(group); } } }); }; itemsView.SelectionChanged += (o, e) => { SelectionChanged?.Invoke(this); btRemove.IsEnabled = SelectedGroupsIds.Any(); }; }
private void btDeleteScenario_Click(object sender, RoutedEventArgs e) { MessageView.ShowYesNo("Вы уверены что хотите удалить выбранный сценарий?", "Удаление сценария", Icon.ListDelete, (result) => { if (result) { var scenario = switchesGrid.SelectedModel.Scenario; try { _repository.RemoveScenario(scenario); _lastDeletedScenario = scenario; switchesGrid.Remove(scenario); } catch (Exception exception) { MessageView.ShowMessage(exception.Message, "Невозможно удалить сценарий", Icon.Warning); _warningHandler.Warn("Невозможно удалить сценарий", exception); } } } ); }
public TriggerConstructorButtonsView() { InitializeComponent(); btApply.Click += (o, e) => { MessageView.ShowYesNo("Вы уверены что хотите применить изменения триггера?", "Изменения триггера", Icons.Icon.Question, (result) => { if (result) { ApplyClicked?.Invoke(); btCancel.IsEnabled = btApply.IsEnabled = false; } }); }; btCancel.Click += (o, e) => { MessageView.ShowYesNo("Вы уверены что хотите отменить все изменения триггера?", "Изменения триггера", Icons.Icon.Question, (result) => { if (result) { ResetClicked?.Invoke(); } }); }; tbName.TextChanged += (o, e) => { _trigger.Name = tbName.Text; TriggerModified(); }; btEnabled.SelectionChanged += (o, e) => { _trigger.Enabled = btEnabled.Selected; TriggerModified(); }; }
public UsersListView() { InitializeComponent(); Refresh(); itemsView.SelectionChanged += (o, e) => SelectionChanged?.Invoke(this); btAdd.Click += (o, e) => { var user = new User(); EditUserView.Show( () => { EditUserPasswordView.Show(() => { _repository.Add(user); AddInternal(user); }, (args) => { if (args.Password.Length < 6) { args.Message = "Длина пароля должна быть не менее 6 символов"; args.Success = false; } else { args.Success = true; } }, user); }, (args) => { if (_repository.Users.Any(x => x.Login.Equals(args.Login))) { args.Message = "Пользователь с таким логином уже существует"; args.Success = false; } else if (_repository.Users.Any(x => x.Name.Equals(args.Name))) { args.Message = "Пользователь с таким именем уже существует"; args.Success = false; } else { args.Success = true; } }, user); }; btRemove.Click += (o, e) => { MessageView.ShowYesNo("Вы уверены что хотите удалить выбранных пользователей?", "Удаление пользователей", Icons.Icon.UserDelete, (result) => { if (result) { var selectedUsers = SelectedUsersIds; foreach (var user in selectedUsers) { Remove(_repository.Users.First(x => x.Id.Equals(user))); } } }); }; SelectionChanged += (ctrl) => btRemove.IsEnabled = SelectedUsersIds.Any(); }