/// <summary> /// Get all published Pivot collection /// </summary> /// <returns>returns list of PublishingCollectionItem</returns> public IEnumerable <PublishingCollectionItem> GetAllPivotCollectionItems() { try { PublishingCollectionItems pivotCollectionItems = PivotCollectionHelper.GetAllPivotCollectionItemsForPivot(this.Context.Request); Session[Properties.Messages.PivotCollectionItemsForSorting] = pivotCollectionItems; ViewState.Add(Properties.Messages.SortingDirection, Properties.Messages.Ascending); ViewState.Add(Properties.Messages.SortingColumn, "ResourceType"); return(pivotCollectionItems.OrderBy(p => p.ResourceType)); } catch (System.ServiceModel.EndpointNotFoundException) { this.errorSummaryContainer.Visible = true; this.collectionsGrid.Visible = false; return(null); } catch (System.TimeoutException) { this.errorMessageSpan.InnerText = Properties.Messages.ConnectionTimedOut; this.errorSummaryContainer.Visible = true; this.collectionsGrid.Visible = false; return(null); } catch (System.ServiceModel.FaultException exception) { Zentity.Services.Web.Globals.TraceMessage(System.Diagnostics.TraceEventType.Error, exception.ToString(), exception.Message); this.errorMessageSpan.InnerText = Properties.Messages.ZentityServerAccessError; this.errorSummaryContainer.Visible = true; this.collectionsGrid.Visible = false; return(null); } catch (System.Exception exception) { Zentity.Services.Web.Globals.TraceMessage(System.Diagnostics.TraceEventType.Error, exception.ToString(), exception.Message); this.errorMessageSpan.InnerText = Properties.Messages.ZentityServerAccessError; this.errorSummaryContainer.Visible = true; this.collectionsGrid.Visible = false; return(null); } }
/// <summary> /// Get status for Pivot collection items /// </summary> /// <param name="request">HttpRequest object</param> /// <returns>List of PublishingCollectionItem objects for all resource types</returns> internal static PublishingCollectionItems GetAllPivotCollectionItemsForPivot(HttpRequest request) { IEnumerable <DirectoryInfo> directories = EnumeratePublishingFolder(); PublishingServiceReference.PublishingServiceClient client = new PublishingServiceReference.PublishingServiceClient(); PublishingCollectionItems result = new PublishingCollectionItems(); IDictionary <string, int> resources = GetResourceCount(); int totalResourceCount = 0; resources.TryGetValue("Zentity.Core.Resource", out totalResourceCount); foreach (KeyValuePair <string, int> resource in resources) { if (resource.Key.Equals("Zentity.Core.Resource")) { continue; } DirectoryInfo specificDirectory = directories.Where(d => d.Name.Equals(resource.Key)).FirstOrDefault(); string dataModelName = string.Empty, resourceTypeName = string.Empty; if (resource.Key.Contains(".")) { dataModelName = resource.Key.Remove(resource.Key.LastIndexOf('.')); resourceTypeName = resource.Key.Replace(dataModelName + ".", string.Empty); } PublishingCollectionItem item = new PublishingCollectionItem(); PublishStatus publishStatus = client.GetPublishingStatusByResourceType(dataModelName, resourceTypeName); item.DataModel = dataModelName; item.ResourceType = resourceTypeName; item.NumberOfResources = resource.Value; item.TotalNoOfResources = totalResourceCount; if (publishStatus == null) { List <PublishStatus> publishStatusFromQueue = client.GetQueuedRequestsByResourceType(dataModelName, resourceTypeName); if (publishStatusFromQueue != null && publishStatusFromQueue.Count > 0) { item.Status = PublishingStatus.Queued; } else { item.Status = PublishingStatus.NotStarted; } } else { if (publishStatus.CurrentStage == PublishStage.Completed || publishStatus.CurrentStage == PublishStage.AbortedOnDemand || publishStatus.CurrentStage == PublishStage.AbortedOnError) { List <PublishStatus> publishStatusFromQueue = client.GetQueuedRequestsByResourceType(dataModelName, resourceTypeName); if (publishStatusFromQueue != null && publishStatusFromQueue.Count > 0) { item.Status = PublishingStatus.Queued; } else { item.LastUpdated = publishStatus.EndTime.Equals(DateTime.MinValue) ? string.Empty : publishStatus.EndTime.ToString(); SetItemStatus(item, publishStatus); } } else { item.LastUpdated = publishStatus.EndTime.Equals(DateTime.MinValue) ? string.Empty : publishStatus.EndTime.ToString(); SetItemStatus(item, publishStatus); } } CreateCollectionData(item, specificDirectory, request); result.Add(item); } return(result); }