public StorageTypeConverter(IProviderInformation oldProvider, IProviderInformation newProvider) { this.oldProvider = oldProvider; this.newProvider = newProvider; this.oldStoreTypes = this.oldProvider.Manifest.GetStoreTypes().ToDictionary(p => p.Name); }
public void Modify(XElement ssdl, IModificationContext context) { if (ssdl == null) { throw new ArgumentNullException("ssdl"); } if (ssdl.Name != this.nameProvider.SchemaElement) { throw new ArgumentException("", "ssdl"); } // Parse and store original provider information IProviderInformation providerInfo = this.providerParser.VisitElement(ssdl); context.Set(ModificationContextHelper.OriginalProvider, providerInfo); // Modify the xml this.modificationLogic.Modify(ssdl, context); }
public void Modify(XAttribute attribute, IModificationContext context) { if (attribute == null) { throw new ArgumentNullException("attribute"); } if (context == null) { throw new ArgumentNullException("context"); } IProviderInformation newProvider = context.Get <IProviderInformation>(ModificationContextHelper.NewProvider, null); if (newProvider == null) { throw new InvalidOperationException(); } attribute.Value = newProvider.ManifestToken; }
public void Modify(XElement ssdl, IProviderInformation newProvider) { if (ssdl == null) { throw new ArgumentNullException("root"); } if (newProvider == null) { throw new ArgumentNullException("newProvider"); } IElementModifier appropriateModifier = null; XNamespace ns = ssdl.Name.Namespace; // Find the appropriate modifier if (ns == StorageSchemaV1Modifier.Namespace) { appropriateModifier = this.SchemaV1Modifier; } else if (ns == StorageSchemaV2Modifier.Namespace) { appropriateModifier = this.SchemaV2Modifier; } else if (ns == StorageSchemaV3Modifier.Namespace) { appropriateModifier = this.SchemaV3Modifier; } if (appropriateModifier == null) { throw new ArgumentException("", "root"); } IModificationContext context = new ModificationContext(); context.Set(ModificationContextHelper.NewProvider, newProvider); appropriateModifier.Modify(ssdl, context); }
public static StorageTypeConverter GetTypeConverter(IModificationContext context) { if (context == null) { throw new ArgumentException("context"); } StorageTypeConverter converter = context.Get <StorageTypeConverter>(TypeConverter, null); if (converter != null) { return(converter); } // Create the converter // Get the provider informations first IProviderInformation originalProvider = context.Get <IProviderInformation>(ModificationContextHelper.OriginalProvider, null); IProviderInformation newProvider = context.Get <IProviderInformation>(ModificationContextHelper.NewProvider, null); if (originalProvider == null) { throw new ArgumentException("", "context"); } if (newProvider == null) { throw new ArgumentException("", "context"); } converter = new StorageTypeConverter(originalProvider, newProvider); // Store for future usage context.Set(TypeConverter, converter); return(converter); }