Exemplo n.º 1
0
 /// <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);
     }
 }
Exemplo n.º 2
0
        /// <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);
        }