コード例 #1
0
 public FeedSourceProcessor(List <ISdShareClientAdaptor> adaptors, FeedSource feedSource)
 {
     _adaptors   = adaptors;
     _feedSource = feedSource;
     _feedSourceLastUpdatedFile = ConfigurationReader.Configuration.LastUpdatedStorageLocation +
                                  Path.DirectorySeparatorChar + feedSource.Name;
 }
コード例 #2
0
 public FeedSourceProcessor(List<ISdShareClientAdaptor> adaptors, FeedSource feedSource)
 {
     _adaptors = adaptors;
     _feedSource = feedSource;
     _feedSourceLastUpdatedFile = ConfigurationReader.Configuration.LastUpdatedStorageLocation +
                                  Path.DirectorySeparatorChar + feedSource.Name;
 }
コード例 #3
0
        private static ServerConfiguration ReadConfiguration(string fileName)
        {
            if (!File.Exists(fileName)) throw new Exception("No file found of name " + fileName);
            var sconfig =  new ServerConfiguration();
            XDocument config = null;
            try
            {
                using (var fs = new FileStream(fileName, FileMode.Open))
                {
                    config = XDocument.Load(fs);
                }
            }
            catch (Exception ex)
            {
                throw new Exception("Unable to read configuration file " + ex.Message + " " + ex.StackTrace);
            }

            // get logging location
            sconfig.LoggingLocation = GetElementValue(config.Root, "LoggingLocation");
            var dirInfo = new DirectoryInfo(sconfig.LoggingLocation);
            if (!dirInfo.Exists) dirInfo.Create();

            // get hashvaluelocation
            sconfig.HashValueStorageLocation = GetElementValue(config.Root, "HashValueStorageLocation");
            dirInfo = new DirectoryInfo(sconfig.HashValueStorageLocation);
            if (!dirInfo.Exists) dirInfo.Create();

            // location for client updating
            sconfig.LastUpdatedStorageLocation = GetElementValue(config.Root, "LastUpdatedStorageLocation");
            dirInfo = new DirectoryInfo(sconfig.LastUpdatedStorageLocation);
            if (!dirInfo.Exists) dirInfo.Create();

            // get all the providers, create an instance and pass through the element to it to process.
            foreach (var element in config.Descendants("CollectionProvider"))
            {
                try
                {
                    var typeNameAttribute = element.Attribute("Type");
                    var assemblyNameAttribute = element.Attribute("Assembly");
                    if (typeNameAttribute != null && assemblyNameAttribute != null)
                    {
                        var typeName = typeNameAttribute.Value;
                        var assemblyName = assemblyNameAttribute.Value;
                        var type = Type.GetType(typeName + ", " + assemblyName);
                        var collectionProvider = Activator.CreateInstance(type) as ICollectionProvider;
                        if (collectionProvider == null) throw new Exception("Unable to instantaite " + assemblyName + " : "  + typeName);
                        collectionProvider.Initialize(element);
                        sconfig.AddCollectionProvider(collectionProvider);
                    }
                } catch (Exception ex)
                {
                    // log error initialising collection provider
                    Logging.LogError(1, "Unable to initialise collection provider {0} {1}", ex.Message, ex.StackTrace);
                    throw;
                }
            }

            // get all feed sources
            foreach (var element in config.Descendants("FeedSource"))
            {
                try
                {
                    var fs = new FeedSource();
                    fs.Initialize(element);
                    sconfig.AddFeedSource(fs);
                }
                catch (Exception ex)
                {
                    // log error initialising collection provider
                    Logging.LogError(1, "Unable to initialise feed source {0} {1}", ex.Message, ex.StackTrace);
                    throw;
                }
            }

            // client adaptors
            foreach (var element in config.Descendants("ClientAdaptor"))
            {
                try
                {
                    var typeNameAttribute = element.Attribute("Type");
                    var assemblyNameAttribute = element.Attribute("Assembly");
                    if (typeNameAttribute != null && assemblyNameAttribute != null)
                    {
                        var typeName = typeNameAttribute.Value;
                        var assemblyName = assemblyNameAttribute.Value;
                        var type = Type.GetType(typeName);
                        var clientAdaptor = Activator.CreateInstance(type) as ISdShareClientAdaptor;
                        if (clientAdaptor == null) throw new Exception("Unable to instantaite " + assemblyName + " : " + typeName);
                        clientAdaptor.Initialize(element);
                        sconfig.AddClientAdaptor(clientAdaptor);
                    }
                }
                catch (Exception ex)
                {
                    // log error initialising collection provider
                    Logging.LogError(1, "Unable to initialise client adaptor {0} {1}", ex.Message, ex.StackTrace);
                    throw;
                }
            }

            return sconfig;
        }
コード例 #4
0
 public void AddFeedSource(FeedSource feedSource)
 {
     _feedSources.Add(feedSource);
 }