Ejemplo n.º 1
0
 public static bool RenderingSyncHandler(CloudBlob source, CloudBlob target, WorkerSupport.SyncOperationType operationtype)
 {
     // Don't delete informationobject types of target folders
     if (operationtype == WorkerSupport.SyncOperationType.Delete)
     {
         if (target.GetBlobInformationType() == StorageSupport.InformationType_InformationObjectValue)
         {
             return(true);
         }
         return(false);
     }
     if (operationtype == WorkerSupport.SyncOperationType.Copy)
     {
         // Custom rendering for web templates
         if (source.GetBlobInformationType() == StorageSupport.InformationType_WebTemplateValue)
         {
             RenderWebSupport.RenderTemplateWithContentToBlob(source, target);
             return(true);
         }
         // Don't copy source dir information objects
         if (source.GetBlobInformationType() == StorageSupport.InformationType_InformationObjectValue)
         {
             return(true);
         }
         return(false);
     }
     return(false);
 }
Ejemplo n.º 2
0
        public static byte[] GetFixedContent(string fileName, List <ErrorItem> errorList, Dictionary <string, bool> processedDict)
        {
            if (fileName.EndsWith(".phtml") == false && fileName.EndsWith(".html") == false)
            {
                //return File.ReadAllText(fileName);
                return(null);
            }
            string fixedContent = FixContent(fileName, errorList, processedDict);

            if (errorList.Count > 0)
            {
                fixedContent = RenderWebSupport.RenderErrorListAsHtml(errorList, "Errors - Combining Files") +
                               fixedContent;
                errorList.Clear();
            }
            return(Encoding.UTF8.GetBytes(fixedContent));
        }
Ejemplo n.º 3
0
 public static void ExecuteSubscription(Subscription subscription)
 {
     if (String.IsNullOrEmpty(subscription.SubscriptionType))
     {
         return;
     }
     if (subscription.TargetRelativeLocation == subscription.SubscriberRelativeLocation)
     {
         throw new InvalidDataException("Self-circular subscription for target: " + subscription.TargetRelativeLocation);
     }
     if (subscription.SubscriptionType == SubscribeSupport.SubscribeType_WebPageToSource)
     {
         try
         {
             CloudBlob cloudBlob =
                 StorageSupport.CurrActiveContainer.GetBlockBlobReference(subscription.SubscriberRelativeLocation);
             RenderWebSupport.RefreshPHTMLContent(cloudBlob, true);
         } catch (Exception ex)
         {
             StorageClientException storageClientException = ex as StorageClientException;
             if (storageClientException != null)
             {
                 if (storageClientException.ErrorCode == StorageErrorCode.BlobNotFound)
                 {
                     return;
                 }
             }
             // TODO: Detect and remove the missing subscribers
             ErrorSupport.ReportException(ex);
         }
     }
     else if (subscription.SubscriptionType == SubscribeSupport.SubscribeType_MasterToReferenceUpdate)
     {
         try
         {
             string containerLocation = subscription.SubscriberRelativeLocation;
             string containerType     = subscription.SubscriberInformationObjectType;
             string masterLocation    = subscription.TargetRelativeLocation;
             string masterType        = subscription.TargetInformationObjectType;
             UpdateContainerFromMaster(containerLocation, containerType, masterLocation, masterType);
         } catch (Exception ex)
         {
             StorageClientException storageClientException = ex as StorageClientException;
             if (storageClientException != null)
             {
                 if (storageClientException.ErrorCode == StorageErrorCode.BlobNotFound)
                 {
                     return;
                 }
             }
             ErrorSupport.ReportException(ex);
         }
     }
     else if (subscription.SubscriptionType == SubscribeSupport.SubscribeType_DirectoryToCollection)
     {
         string directoryLocation  = subscription.TargetRelativeLocation;
         string collectionType     = subscription.SubscriberInformationObjectType;
         string collectionLocation = subscription.SubscriberRelativeLocation;
         UpdateCollectionFromDirectory(collectionType, collectionLocation, directoryLocation);
     }
     else if (subscription.SubscriptionType == SubscribeSupport.SubscribeType_CollectionToCollectionUpdate)
     {
         string masterCollectionLocation    = subscription.TargetRelativeLocation;
         string masterCollectionType        = subscription.TargetInformationObjectType;
         string referenceCollectionLocation = subscription.SubscriberRelativeLocation;
         string referenceCollectionType     = subscription.SubscriberInformationObjectType;
         UpdateCollectionFromMasterCollection(referenceCollectionType, referenceCollectionLocation,
                                              masterCollectionType, masterCollectionLocation);
     }
     else if (subscription.SubscriptionType == SubscribeSupport.SubscribeType_MasterCollectionToContainerUpdate)
     {
         string masterCollectionLocation = subscription.TargetRelativeLocation;
         string masterCollectionType     = subscription.TargetInformationObjectType;
         string containerLocation        = subscription.SubscriberRelativeLocation;
         string containerType            = subscription.SubscriberInformationObjectType;
         UpdateContainerFromMasterCollection(containerType, containerLocation,
                                             masterCollectionType, masterCollectionLocation);
     }
     else
     {
         throw new InvalidDataException(String.Format(
                                            "Unsupported subscription type {0} for object: {1} by {2}", subscription.SubscriptionType,
                                            subscription.TargetRelativeLocation, subscription.SubscriberRelativeLocation));
     }
 }