Exemple #1
0
 /// <summary>
 /// Выкладка комплекта.
 /// </summary>
 /// <param name="btn"></param>
 /// <param name="customerComboBox">Список папок комплектов заказчиков.</param>
 /// <param name="form"></param>
 public PackageDeploy(RadioButton btn, ComboBox customerComboBox, DeployPackageDestinationForm form)
     : base(btn, new Control[] { customerComboBox }, form)
 {
     if (btn == null)
     {
         throw new ArgumentNullException(nameof(btn));
     }
     this.CustomerComboBox = customerComboBox ?? throw new ArgumentNullException(nameof(customerComboBox));
 }
 /// <summary>
 /// Вид деплоя.
 /// </summary>
 /// <param name="switcher">Переключатель.</param>
 /// <param name="childControls">Дочерние элементы.</param>
 /// <param name="form">Родительская форма.</param>
 public DeployType(RadioButton switcher, Control[] childControls, DeployPackageDestinationForm form)
 {
     this.Switcher                 = switcher ?? throw new ArgumentNullException(nameof(switcher));
     this.ChildControls            = childControls ?? throw new ArgumentNullException(nameof(childControls));
     this.Form                     = form ?? throw new ArgumentNullException(nameof(form));
     this.Switcher.CheckedChanged += (s, e) =>
     {
         this.IsActive = this.Switcher.Checked;
     };
 }
        /// <summary>
        /// Срабатывает при выполнении команды.
        /// </summary>
        protected override void OnExecute()
        {
            DeployPackageDestinationForm form = new DeployPackageDestinationForm(this);

            form.Show(new Owner(this.DTE.MainWindow.HWnd));
            form.FormClosed += (s, e) =>
            {
                form.Dispose();
            };
        }
 /// <summary>
 /// Выкладывание комплекта в папку.
 /// </summary>
 /// <param name="switcher"></param>
 /// <param name="folderPath">Контрол с указанием пути к папке.</param>
 /// <param name="btnBrowse">Кнопка для выбора папки.</param>
 /// <param name="deployPackageDestinationForm"></param>
 public FolderDeploy(RadioButton switcher, TextBox folderPath, Button btnBrowse, DeployPackageDestinationForm deployPackageDestinationForm)
     : base(switcher, new Control[] { folderPath, btnBrowse }, deployPackageDestinationForm)
 {
     this.FolderPath = folderPath ?? throw new ArgumentNullException(nameof(folderPath));
     this.BtnBrowse  = btnBrowse ?? throw new ArgumentNullException(nameof(btnBrowse));
 }
        /// <summary>
        /// Выкладывание в тестирование.
        /// </summary>
        /// <param name="switcher"></param>
        /// <param name="testComboBox">Выбор папки с папками тестирования.</param>
        /// <param name="deployPackageDestinationForm"></param>
        public TestDeploy(RadioButton switcher, ComboBox testComboBox, ComboBox testFoldersBox, DeployPackageDestinationForm deployPackageDestinationForm)
            : base(switcher, new Control[] { testComboBox, testFoldersBox }, deployPackageDestinationForm)
        {
            this.TestComboBox = testComboBox ?? throw new ArgumentNullException(nameof(testComboBox));
            TestFoldersBox    = testFoldersBox ?? throw new ArgumentNullException(nameof(testFoldersBox));

            // Определяем поведение при выборе папки тестирования
            this.TestComboBox.SelectedIndexChanged += (s, e) =>
            {
                OptionItem item = this.TestComboBox.SelectedItem as OptionItem;
                int        year = DateTime.Now.Year;

                this.TestFoldersBox.Items.Clear();
                this.TestFoldersBox.Items.AddRange(

                    // Берём подпапки выбранной папки тестирования
                    Directory.EnumerateDirectories(item.DirectoryPath, $"{year}*", SearchOption.TopDirectoryOnly)

                    // Получаем информацию по папкам
                    .Select(path => new DirectoryInfo(path))

                    // На всякий случай отсеиваем несуществующие
                    .Where(dir => dir.Exists)

                    // Сортируем по названию
                    .OrderByDescending(dir => dir.Name)

                    // Берём первые 10
                    .Take(10)

                    // Формируем варианты выбора для списка
                    .Select(x => new OptionItem(x)).ToArray()
                    );
                this.TestFoldersBox.Text = this.FolderTemplateName;
            };
        }