Пример #1
0
        public StorageTypeConverter(IProviderInformation oldProvider, IProviderInformation newProvider)
        {
            this.oldProvider = oldProvider;
            this.newProvider = newProvider;

            this.oldStoreTypes = this.oldProvider.Manifest.GetStoreTypes().ToDictionary(p => p.Name);
        }
Пример #2
0
        public StorageTypeConverter(IProviderInformation oldProvider, IProviderInformation newProvider)
        {
            this.oldProvider = oldProvider;
            this.newProvider = newProvider;

            this.oldStoreTypes = this.oldProvider.Manifest.GetStoreTypes().ToDictionary(p => p.Name);
        }
Пример #3
0
        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);
        }
Пример #6
0
        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);
        }
        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);
        }