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();
     }
 }
Example #3
0
 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();
     }
 }
Example #4
0
        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);
                }
            }
        }
Example #5
0
        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);
             }
         }
     }
                           );
 }
Example #9
0
        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);
             }
         }
     }
                           );
 }
Example #11
0
        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();
        }