Пример #1
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();
        }
        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();
        }
        private void GetDraftProjectsList()
        {
            LV_Projects.InvokeIfRequired(s => s.Items.Clear());
            IEnumerable <PublishedProject> projectList =
                ProjContext.LoadQuery(ProjContext.Projects.Include(p => p.Draft.Name, p => p.Draft.Id,
                                                                   p => p.IsCheckedOut));

            ProjContext.ExecuteQuery();
            PublishedProject[]  publishedProjects = projectList.ToArray();
            List <ListViewItem> listViewItems     = new List <ListViewItem>();

            foreach (PublishedProject project in publishedProjects)
            {
                ListViewItem lvi = new ListViewItem(project.Draft.Name)
                {
                    Tag = project
                };
                Log.WriteVerbose(new SourceInfo(), "Found Project:{0}", project.Draft.Name);
                listViewItems.Add(lvi);
            }
            LV_Projects.InvokeIfRequired(s =>
            {
                s.Columns[0].Text = $"Projects({publishedProjects.Length})";
                s.Items.AddRange(listViewItems.ToArray());
            });
        }
Пример #4
0
        private void LoadProjectsList()
        {
            LV_Projects.InvokeIfRequired(s =>
            {
                s.Items.Clear();
                s.Columns.Clear();
                s.Columns.Add(new ColumnHeader {
                    Text = "Id", DisplayIndex = 0, Width = 20
                });
                s.Columns.Add(new ColumnHeader {
                    Text = "Name", DisplayIndex = 0, Width = 20
                });
                s.Columns.Add(new ColumnHeader {
                    Text = "Owner", DisplayIndex = 0, Width = 20
                });
                s.Columns.Add(new ColumnHeader {
                    Text = "CheckOut by", DisplayIndex = 0, Width = 20
                });
                s.Columns.Add(new ColumnHeader {
                    Text = "Published Date", DisplayIndex = 0, Width = 20
                });
                s.Columns.Add(new ColumnHeader {
                    Text = "Updated Date", DisplayIndex = 0, Width = 20
                });
                s.AutoResizeColumns(ColumnHeaderAutoResizeStyle.ColumnContent);
                s.AutoResizeColumns(ColumnHeaderAutoResizeStyle.HeaderSize);
            });

            IEnumerable <PublishedProject> projectList =
                ProjContext.LoadQuery(ProjContext.Projects.Include(p => p.Name, p => p.Id, p => p.IsCheckedOut,
                                                                   p => p.CheckedOutBy.LoginName, p => p.LastPublishedDate, p => p.Owner.LoginName,
                                                                   p => p.Draft.LastSavedDate));

            ProjContext.ExecuteQuery();

            List <ListViewItem> listViewItems = new List <ListViewItem>();

            foreach (PublishedProject proj in projectList)
            {
                ListViewItem lvi = new ListViewItem(proj.Id.ToString());
                lvi.SubItems.Add(proj.Name);
                lvi.SubItems.Add(proj.Owner.LoginName);
                lvi.SubItems.Add(proj.IsCheckedOut ? proj.CheckedOutBy.LoginName : string.Empty);
                lvi.SubItems.Add(proj.LastPublishedDate.ToString(CultureInfo.InvariantCulture));
                lvi.SubItems.Add(proj.Draft.LastSavedDate.ToString(CultureInfo.InvariantCulture));
                lvi.Tag = proj;
                listViewItems.Add(lvi);
            }
            LV_Projects.InvokeIfRequired(s =>
            {
                s.Items.AddRange(listViewItems.ToArray());
                s.AutoResizeColumns(ColumnHeaderAutoResizeStyle.ColumnContent);
                s.AutoResizeColumns(ColumnHeaderAutoResizeStyle.HeaderSize);
            });
        }
Пример #5
0
        private void ProjectOwner_Load(object sender, EventArgs e)
        {
            LV_Projects.View          = View.Details;
            LV_Projects.Alignment     = ListViewAlignment.SnapToGrid;
            LV_Projects.FullRowSelect = true;
            LV_Projects.Scrollable    = true;
            LV_Projects.HideSelection = false;
            LV_Projects.MultiSelect   = true;
            LV_Projects.Columns.Add(new ColumnHeader {
                Text = "Projects", DisplayIndex = 0
            });
            LV_Projects.Columns.Add(new ColumnHeader {
                Text = "Owner", DisplayIndex = 1
            });
            LV_Projects.Columns.Add(new ColumnHeader {
                Text = "CheckedOut By", DisplayIndex = 2
            });
            LV_Projects.Columns.Add(new ColumnHeader {
                Text = "Updated Date", DisplayIndex = 3
            });
            LV_Projects.AutoResizeColumns(ColumnHeaderAutoResizeStyle.ColumnContent);
            LV_Projects.AutoResizeColumns(ColumnHeaderAutoResizeStyle.HeaderSize);

            LV_EnterpiseResources.View          = View.Details;
            LV_EnterpiseResources.Alignment     = ListViewAlignment.SnapToGrid;
            LV_EnterpiseResources.Scrollable    = true;
            LV_EnterpiseResources.HideSelection = false;
            LV_EnterpiseResources.FullRowSelect = true;
            LV_EnterpiseResources.MultiSelect   = false;
            LV_EnterpiseResources.Columns.Add(new ColumnHeader {
                Text = "Enterprise Resources", DisplayIndex = 0
            });

            LV_Projects.OwnerDraw = true;
            //LV_Projects.Resize += ListView_Resize;
            LV_Projects.DrawItem         += ListView_DrawItem;
            LV_Projects.DrawSubItem      += ListView_DrawSubItem;
            LV_Projects.DrawColumnHeader += ControlHelpers.ListViewDrawColumnHeader;
            LV_Projects.ColumnClick      += ControlHelpers.SortListView;

            LV_EnterpiseResources.OwnerDraw         = true;
            LV_EnterpiseResources.Resize           += ListView_Resize;
            LV_EnterpiseResources.DrawItem         += ListView_DrawItem;
            LV_EnterpiseResources.DrawSubItem      += ListView_DrawSubItem;
            LV_EnterpiseResources.DrawColumnHeader += ControlHelpers.ListViewDrawColumnHeader;
            LV_EnterpiseResources.ColumnClick      += ControlHelpers.SortListView;
            LV_EnterpiseResources.MultiSelect       = false;
            LoadProjectsAndResources();
        }
Пример #6
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();
        }
        private void GetDraftTeamForSelectedProject()
        {
            PublishedProject project = null;

            LV_Projects.InvokeIfRequired(s => project = s.SelectedItems[0].Tag as PublishedProject);
            LV_ProjectResources.InvokeIfRequired(s => s.Items.Clear());

            IEnumerable <DraftProjectResource> resourceList = ProjContext.LoadQuery(project.Draft.ProjectResources);

            ProjContext.ExecuteQuery();

            DraftProjectResource[] draftProjectResources = resourceList.ToArray();

            foreach (ListViewItem lvi in draftProjectResources.Select(res => new ListViewItem(res.Name)
            {
                Tag = res
            }))
            {
                LV_ProjectResources.InvokeIfRequired(s => s.Items.Add(lvi));
            }

            LV_ProjectResources.InvokeIfRequired(s => s.Columns[0].Text = $"Project Resources({draftProjectResources.Length})");
        }
Пример #8
0
        private void LoadProjects()
        {
            Log.WriteVerbose(new SourceInfo(), "Loading projects");

            IEnumerable <PublishedProject> projectList = ProjContext.LoadQuery(ProjContext.Projects.Include(p => p.Name, p => p.Owner, p => p.Id, p => p.Owner.Title, p => p.IsCheckedOut, p => p.CheckedOutBy.Title, p => p.Draft.LastSavedDate, p => p.Draft));

            ProjContext.ExecuteQuery();
            List <ListViewItem> listViewItems = new List <ListViewItem>();

            foreach (PublishedProject project in projectList)
            {
                ListViewItem lvi = new ListViewItem(project.Name);
                lvi.SubItems.Add(project.Owner.Title);
                if (project.CheckedOutBy.IsNull())
                {
                    lvi.SubItems.Add(String.Empty);
                }
                else
                {
                    lvi.SubItems.Add(project.CheckedOutBy.Title);
                }
                lvi.SubItems.Add(project.Draft.LastSavedDate.ToString(CultureInfo.InvariantCulture));

                lvi.Tag = project;
                Log.WriteVerbose(new SourceInfo(), "Found Project:{0}", project.Name);
                listViewItems.Add(lvi);
            }
            LV_Projects.InvokeIfRequired(s =>
            {
                s.Items.Clear();
                s.Items.AddRange(listViewItems.ToArray());
                s.Columns[0].Text = $"Projects({listViewItems.Count})";
                LV_Projects.AutoResizeColumns(ColumnHeaderAutoResizeStyle.ColumnContent);
                LV_Projects.AutoResizeColumns(ColumnHeaderAutoResizeStyle.HeaderSize);
            });
        }
 private void ProjectTeamBuilder_ResizeEnd(object sender, EventArgs e)
 {
     LV_Projects.ResizeColumnHeaders();
     LV_ProjectResources.ResizeColumnHeaders();
     LV_EnterpiseResources.ResizeColumnHeaders();
 }