Пример #1
0
        /// <summary>
        /// Обновляем листбоксы Назначено: и Уведомлять: в зависимости от выбранного Проекта
        /// </summary>
        public void RefreshListboxes()
        {
            lb_Notificate.Items.Clear();
            lb_Naznacheno.Items.Clear();

            P = CommonVariables.globalProjects.Where(gp => ((ComboboxItem)cbProjects.SelectedItem).Value == gp.id).SingleOrDefault();

            // --- Done подгрузить в листбоксы людей из соответствующих полей (FValues?)
            TuleapClasses.Tracker3 t = P.trackers.Where(tr => tr.label.ToLower() == "patches").SingleOrDefault();
            var fieldAssignedTo      = t.fields.Where(f => f.label == "Назначено" || f.name == "assigned_to").FirstOrDefault();

            foreach (var fv in fieldAssignedTo.FValues)
            {
                lb_Naznacheno.Items.Add(fv.label + " - " + fv.id);
            }

            var fieldNotificateTo = t.fields.Where(f => f.label == "Уведомлять участников обновления" || f.name == "field_4").FirstOrDefault();

            foreach (var fv in fieldNotificateTo.FValues)
            {
                lb_Notificate.Items.Add(new ComboboxItem {
                    Text = fv.label, Value = fv.id
                });
                // ---Выбираем сразу кого надо в этих листбоксах
                if (fv.label.Contains("sergey_lebedev") ||
                    fv.label.Contains("vadim_sidorchuk") ||
                    fv.label.Contains("valeriy_suhorukov") ||
                    fv.label.Contains("victor_vernigora")
                    )
                {
                    lb_Notificate.SelectedIndex = lb_Notificate.Items.Count - 1;
                }
            }
        }
Пример #2
0
        private void TuleapPatchCreateForm_Load(object sender, EventArgs e)
        {
            P = CommonVariables.globalProjects.Where(gp => Art.project.id == gp.id).SingleOrDefault();

            // --- Подгружаем проекты в комбобокс на форме2
            foreach (var pr in CommonVariables.globalProjects)
            {
                cbProjects.Items.Add(new ComboboxItem {
                    Text = pr.label, Value = pr.id
                });
                if (pr.id == Art.project.id)
                {
                    cbProjects.SelectedIndex = cbProjects.Items.Count - 1;
                }
            }

            //foreach (var pr in cbProjects.Items)
            //{
            //    if ((pr as ComboboxItem).Value == Art.project.id)
            //    {
            //        cbProjects.SelectedIndex = cbProjects.Items.IndexOf(pr);
            //        break;
            //    }
            //}

            RefreshListboxes();

            // --- загружаем библиотеки в список ListView
            try
            {
                string   dbg        = "debug";
                string   rls        = "Release";
                string   obj        = "obj";
                string[] libFolders = Directory.GetDirectories(CommonVariables.projectFolder + @"\ESEDO_Sources").Where(d => !d.Contains("TestProjects")).ToArray(); // todo: sEsedoProjectFolder сохранять в настройки в файле и загружать из него

                for (int i = 0; i < libFolders.Count(); i++)
                {
                    string libName = libFolders[i].Substring((CommonVariables.projectFolder + @"\ESEDO_Sources").Length + 1);  // только имя либы (без пути и без .dll)

                    // --- выясняем, какую библиотеку брать: из Debug или Release конфигурации (чья дата обновления позже, та и нужна)
                    string[] extensions         = { ".dll", ".pdb" };
                    string   dllFileNameDebug   = Path.Combine(libFolders[i], obj, dbg, libName + extensions[0]);
                    string   dllFileNameRelease = Path.Combine(libFolders[i], obj, rls, libName + extensions[0]);

                    DateTime dtChangedDebug   = File.GetLastWriteTime(dllFileNameDebug); //todo: try except (NotSupportedException)
                    DateTime dtChangedRelease = File.GetLastWriteTime(dllFileNameRelease);
                    string   neededFolder     = (dtChangedDebug > dtChangedRelease) ? dbg : rls;
                    DateTime dtChanged        = (dtChangedDebug > dtChangedRelease) ? dtChangedDebug : dtChangedRelease;

                    neededFolder = Path.Combine(libFolders[i], obj, neededFolder);

                    string dllFullFileName = Path.Combine(neededFolder, libName + extensions[0]);
                    string pdbFullFileName = Path.Combine(neededFolder, libName + extensions[1]);

                    ListViewItem li = new ListViewItem();
                    li.Text = libName;
                    li.SubItems.Add(dtChanged.ToLongDateString() + " " + dtChanged.ToLongTimeString()); //.Tag = dtChanged; // done можно убрать Tag для сабитема, и при сортировке дату брать из ((EsedoLib)li.Tag).ChangeDateTime
                    li.Tag = new EsedoLib
                    {
                        Name = libName,
                        FullPathFileNameDLL = dllFullFileName,
                        FullPathFileNamePDB = pdbFullFileName,
                        ChangeDateTime      = dtChanged
                    };
                    lv_libs.Items.Add(li);
                }

                lvwColumnSorter.SortColumn = 1;
                lvwColumnSorter.Order      = SortOrder.Descending;
                lv_libs.Sort();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }