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); }
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)); }
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)); } }