コード例 #1
0
        private void DeleteProjects()
        {
            List <PublishedProject> projectList = new List <PublishedProject>();

            LV_ServerObjects.InvokeIfRequired(s =>
            {
                ListView.SelectedListViewItemCollection selectedItems = s.SelectedItems;
                projectList.AddRange(selectedItems.Cast <ListViewItem>().Select(selectedItem => (PublishedProject)selectedItem.Tag));
            });
            if (!projectList.Any())
            {
                return;
            }
            int             projectCounter = 1;
            List <QueueJob> jobs           = projectList.Select(p =>
            {
                if (p.IsCheckedOut)
                {
                    QueueJob checkinJob = p.Draft.CheckIn(true);

                    CsomHelper.ExecuteAndWait(checkinJob, TB_Status);
                }

                QueueJob job = p.DeleteObject();
                Log.WriteVerbose(new SourceInfo(), TB_Status, "Deleting project {0} of {1} with name {2}.", projectCounter++, projectList.Count, p.Name);
                return(job);
            }).ToList();

            Log.WriteVerbose(new SourceInfo(), TB_Status, _bgeProjectsDelete, "Waiting for the Delete queue job to complete.");
            CsomHelper.ExecuteAndWait(jobs, TB_Status);
            Log.WriteVerbose(new SourceInfo(), TB_Status, _bgeProjectsDelete, "Refreshing Projects.");
            LoadProjectsList();
        }
コード例 #2
0
        private void PublishProjects()
        {
            List <PublishedProject> projectList = new List <PublishedProject>();

            LV_Projects.InvokeIfRequired(s =>
            {
                ListView.SelectedListViewItemCollection selectedItems = s.SelectedItems;
                projectList.AddRange(selectedItems.Cast <ListViewItem>().Select(selectedItem => (PublishedProject)selectedItem.Tag));
            });
            if (!projectList.Any())
            {
                return;
            }
            List <QueueJob> jobs = projectList.Select(p =>
            {
                if (!p.IsCheckedOut)
                {
                    p.CheckOut();
                }
                Log.WriteVerbose(new SourceInfo(), TB_Status, "Publishing project:{0}.", p.Name);
                QueueJob job = p.Draft.Publish(true);
                return(job);
            }).ToList();

            Log.WriteVerbose(new SourceInfo(), TB_Status, _backgroundExecutorWithStatus, "Waiting for the Publish queue job to complete.");
            CsomHelper.ExecuteAndWait(jobs, TB_Status);
            Log.WriteVerbose(new SourceInfo(), TB_Status, _backgroundExecutorWithStatus, "Refreshing Projects.");
            LoadProjects();
        }
コード例 #3
0
        private void DeleteResources()
        {
            List <EnterpriseResource> resourceList = new List <EnterpriseResource>();

            LV_ServerObjects.InvokeIfRequired(s =>
            {
                ListView.SelectedListViewItemCollection selectedItems = s.SelectedItems;
                resourceList.AddRange(selectedItems.Cast <ListViewItem>().Select(selectedItem => (EnterpriseResource)selectedItem.Tag));
            });
            if (!resourceList.Any())
            {
                return;
            }
            resourceList.ForEach(r =>
            {
                if (r.IsCheckedOut)
                {
                    Log.WriteVerbose(new SourceInfo(), TB_Status, "Checking in resource:{0}.", r.Name);
                    r.ForceCheckIn();
                }
                Log.WriteVerbose(new SourceInfo(), TB_Status, "Deleting resource:{0}.", r.Name);
                r.DeleteObject();
            });

            ProjContext.EnterpriseResources.Update();
            ProjContext.ExecuteQuery();

            Log.WriteVerbose(new SourceInfo(), TB_Status, _bgeResourcesDelete, "Refreshing Resources");
            LoadResources();
        }
コード例 #4
0
        private void RemoveResources()
        {
            PublishedProject            publishedProject = null;
            DraftProject                draftProject;
            List <DraftProjectResource> draftProjectResourceresList = new List <DraftProjectResource>();

            LV_Projects.InvokeIfRequired(s => publishedProject = (PublishedProject)s.SelectedItems[0].Tag);

            LV_ProjectResources.InvokeIfRequired(s =>
            {
                ListView.SelectedListViewItemCollection selectedItems = s.SelectedItems;
                draftProjectResourceresList.AddRange(selectedItems.Cast <ListViewItem>().Select(selectedItem => (DraftProjectResource)selectedItem.Tag));
            });

            if (draftProjectResourceresList.Any())
            {
                draftProject = publishedProject.IsCheckedOut ? publishedProject.Draft : publishedProject.CheckOut();

                draftProjectResourceresList.ForEach(r =>
                {
                    Log.WriteVerbose(new SourceInfo(), TB_Status, "Removing Resource:{0} from Project:{1}.", r.Name, publishedProject.Draft.Name);
                    draftProject.ProjectResources.Remove(r);
                });
                QueueJob queueJob = draftProject.Update();
                Log.WriteVerbose(new SourceInfo(), TB_Status, _bgeRemoveProjectResources, "Waiting for the Project Update job to complete.");
                CsomHelper.ExecuteAndWait(queueJob, TB_Status);
            }
            Log.WriteVerbose(new SourceInfo(), TB_Status, _bgeRemoveProjectResources, "Refreshing Project resources.");
            GetDraftTeamForSelectedProject();
        }
コード例 #5
0
        private void CheckInCheckoutProjects()
        {
            List <PublishedProject> projectList = new List <PublishedProject>();

            LV_ServerObjects.InvokeIfRequired(s =>
            {
                ListView.SelectedListViewItemCollection selectedItems = s.SelectedItems;
                projectList.AddRange(selectedItems.Cast <ListViewItem>().Select(selectedItem => (PublishedProject)selectedItem.Tag));
            });
            if (!projectList.Any())
            {
                return;
            }
            if (_checkin)
            {
                List <QueueJob> jobs = projectList.Where(s => s.IsCheckedOut).Select(p =>
                {
                    QueueJob job = null;
                    Log.WriteVerbose(new SourceInfo(), TB_Status, "Checking in Project {0}", p.Name);
                    job = p.Draft.CheckIn(true);
                    return(job);
                }).ToList();

                if (jobs.Count <= 0)
                {
                    return;
                }
                Log.WriteVerbose(new SourceInfo(), TB_Status, _backgroundExecutorWithStatus, "Waiting for the Queue jobs to complete");
                CsomHelper.ExecuteAndWait(jobs, TB_Status);
                Log.WriteVerbose(new SourceInfo(), TB_Status, _backgroundExecutorWithStatus, "Loading Projects");
                LoadProjects();
            }
            else
            {
                bool needExecute = false;
                projectList.ForEach(p =>
                {
                    if (p.IsCheckedOut)
                    {
                        return;
                    }
                    Log.WriteVerbose(new SourceInfo(), TB_Status, "Checking out Project {0}", p.Name);
                    p.CheckOut();
                    needExecute = true;
                });
                if (needExecute)
                {
                    ProjContext.ExecuteQuery();
                    LoadProjects();
                }
                else
                {
                    Log.WriteVerbose(new SourceInfo(), TB_Status, _backgroundExecutorWithStatus,
                                     "All selected projects are in checked out state.");
                }
            }
        }
コード例 #6
0
ファイル: Main.cs プロジェクト: rbarraud/CKAN
        private void ShowSelectionModInfo(ListView.SelectedListViewItemCollection selection)
        {
            CkanModule module = (CkanModule)selection?.Cast <ListViewItem>().FirstOrDefault()?.Tag;

            ActiveModInfo = module == null ? null : new GUIMod(
                module,
                RegistryManager.Instance(CurrentInstance).registry,
                CurrentInstance.VersionCriteria()
                );
        }
コード例 #7
0
ファイル: MainExport.cs プロジェクト: zxasqwsss/CKAN
        private void EditModpack_OnSelectedItemsChanged(ListView.SelectedListViewItemCollection items)
        {
            var first = items.Cast <ListViewItem>().FirstOrDefault()?.Tag as ModuleRelationshipDescriptor;
            var ident = first?.name;

            if (!string.IsNullOrEmpty(ident) && ManageMods.mainModList.full_list_of_mod_rows.TryGetValue(ident, out DataGridViewRow row))
            {
                ActiveModInfo = row.Tag as GUIMod;
            }
            else
            {
                ActiveModInfo = null;
            }
        }
コード例 #8
0
        private void UpdateProjectOwner()
        {
            List <PublishedProject> projectList = new List <PublishedProject>();
            EnterpriseResource      resource    = null;

            LV_Projects.InvokeIfRequired(s =>
            {
                ListView.SelectedListViewItemCollection selectedItems = s.SelectedItems;
                projectList.AddRange(selectedItems.Cast <ListViewItem>().Select(selectedItem => (PublishedProject)selectedItem.Tag));
            });

            LV_EnterpiseResources.InvokeIfRequired(s => resource = (EnterpriseResource)s.SelectedItems[0].Tag);

            if (resource == null)
            {
                Log.WriteWarning(new SourceInfo(), TB_Status, "No enterprise resource selected.");
                return;
            }

            List <QueueJob> jobs = new List <QueueJob>();

            foreach (PublishedProject publishedproject in projectList)
            {
                if (!publishedproject.IsCheckedOut)
                {
                    publishedproject.CheckOut();
                }
                else if (!publishedproject.CheckedOutBy.IsNull() && publishedproject.CheckedOutBy.Title != CsomBase.CurrentResource.User.Title)
                {
                    Log.WriteWarning(new SourceInfo(), TB_Status,
                                     "Project:{0} checked out to a different user:{1}, not changing the owner to {2}.",
                                     publishedproject.Name,
                                     publishedproject.Owner.Title,
                                     resource.User.Title);
                    continue;
                }

                Log.WriteVerbose(new SourceInfo(), TB_Status, "Updating project:{0}, Setting owner to:{1}", publishedproject.Name,
                                 resource.Name);

                publishedproject.Owner = resource.User;
                jobs.Add(publishedproject.Draft.Update());
            }
            Log.WriteVerbose(new SourceInfo(), TB_Status, _bgeProject, "Waiting for the Project Update job to complete.");
            CsomHelper.ExecuteAndWait(jobs, TB_Status);
            Log.WriteVerbose(new SourceInfo(), TB_Status, _bgeProject, "Loading Projects.");
            LoadProjects();
        }
コード例 #9
0
        private void DeleteCustomFields()
        {
            List <CustomField> customFieldList = new List <CustomField>();

            LV_ServerObjects.InvokeIfRequired(s =>
            {
                ListView.SelectedListViewItemCollection selectedItems = s.SelectedItems;
                customFieldList.AddRange(selectedItems.Cast <ListViewItem>().Select(selectedItem => (CustomField)selectedItem.Tag));
            });

            if (!customFieldList.Any())
            {
                return;
            }
            customFieldList.ForEach(cf => cf.DeleteObject());
            ProjContext.ExecuteQuery();
            LoadCustomFields();
        }
コード例 #10
0
        private void DeleteCalendars()
        {
            List <Calendar> calendarList = new List <Calendar>();

            LV_ServerObjects.InvokeIfRequired(s =>
            {
                ListView.SelectedListViewItemCollection selectedItems = s.SelectedItems;
                calendarList.AddRange(selectedItems.Cast <ListViewItem>().Select(selectedItem => (Calendar)selectedItem.Tag));
            });
            if (!calendarList.Any())
            {
                return;
            }
            calendarList.ForEach(c =>
            {
                c.DeleteObject();
            });

            ProjContext.ExecuteQuery();
            LoadCalendars();
        }
コード例 #11
0
        private bool IsProjectSelected(ListView.SelectedListViewItemCollection selected)
        {
            //if (_errorsList.SelectedItems.Count != 1) return false;
            var selectedItem = selected.Cast <ListViewItem>().FirstOrDefault();

            if (selectedItem == null)
            {
                return(true);
            }
            ValidationError warning = selectedItem.Tag as ValidationError;

            if (warning == null)
            {
                return(false);
            }
            if (warning.Source == null || warning.Source as Project == null)
            {
                return(false);
            }
            return(true);
        }
コード例 #12
0
        private void DeleteLookupTables()
        {
            List <LookupTable> lookupTableList = new List <LookupTable>();

            LV_ServerObjects.InvokeIfRequired(s =>
            {
                ListView.SelectedListViewItemCollection selectedItems = s.SelectedItems;
                lookupTableList.AddRange(selectedItems.Cast <ListViewItem>().Select(selectedItem => (LookupTable)selectedItem.Tag));
            });

            if (!lookupTableList.Any())
            {
                return;
            }
            lookupTableList.ForEach(lt =>
            {
                lt.DeleteObject();
            });

            ProjContext.ExecuteQuery();
            LoadLookupTables();
        }
コード例 #13
0
        private void ButtonRemoveFontClick(object sender, EventArgs e)
        {
            ListView.SelectedListViewItemCollection selected = listViewFonts.SelectedItems;
            List <ListViewItem> used = GetUsed(selected);

            if (used.Count > 0)
            {
                var sb = new StringBuilder();
                sb.AppendFormat(Resources.FontSettings.ConverterSettingsForm_buttonRemoveFont_FontNameMessage, used[0].Text);
                MessageBox.Show(this, sb.ToString(), Resources.FontSettings.ConverterSettingsForm_buttonRemoveFont_Click_Font_used, MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
            List <ListViewItem> toDelete = selected.Cast <ListViewItem>().Where(item => (item != null) && !used.Contains(item)).ToList();

            listViewFonts.BeginUpdate();
            foreach (ListViewItem selectedItem in toDelete)
            {
                CSSFontSettings.Fonts.Remove(selectedItem.Text);
                listViewFonts.Items.Remove(selectedItem);
            }
            listViewFonts.EndUpdate();
            RefreshData();
        }
コード例 #14
0
        private void CheckInResources()
        {
            List <EnterpriseResource> resourceList = new List <EnterpriseResource>();

            LV_ServerObjects.InvokeIfRequired(s =>
            {
                ListView.SelectedListViewItemCollection selectedItems = s.SelectedItems;
                resourceList.AddRange(selectedItems.Cast <ListViewItem>().Select(selectedItem => (EnterpriseResource)selectedItem.Tag));
            });
            if (!resourceList.Any())
            {
                return;
            }
            foreach (var res in resourceList.Where(r => r.IsCheckedOut))
            {
                Log.WriteVerbose(new SourceInfo(), TB_Status, "Checking in Resource {0}", res.Name);
                res.ForceCheckIn();
            }

            ProjContext.ExecuteQuery();
            Log.WriteVerbose(new SourceInfo(), TB_Status, _backgroundExecutorWithStatus, "Loading Resources");
            LoadResources();
        }
コード例 #15
0
 private List <ListViewItem> GetUsed(ListView.SelectedListViewItemCollection selected)
 {
     return(selected.Cast <ListViewItem>().Where(item => CSSFontSettings.IsFontUsed(item.Text)).ToList());
 }
コード例 #16
0
 public IEnumerator <GenericListViewItem <T> > GetEnumerator()
 {
     return(_items.Cast <GenericListViewItem <T> >().GetEnumerator());
 }