示例#1
0
        public ConnectorSetupController()
        {
            azureTableProvider = new AzureTableProvider(Settings.StorageAccountConnectionString);
            var client = new RestApiRepository(SettingsTwitter.TwitterAuthEndPoint);

            connectorSourceProvider = new TwitterProvider(azureTableProvider, client, new TwitterAuthProvider(client, azureTableProvider));
        }
示例#2
0
        private void SaveToAzureTableStorage(object obj)
        {
            var entity = AzureTableProvider.MakeTableEntity(obj);

            entity.PartitionKey = Partition;

            GetTableContext(obj.GetType().Name).Save(entity);
        }
        public void TestInitialize()
        {
            azureTableProvider     = new AzureTableProvider(Settings.StorageAccountConnectionString);
            mockIRestApiRepository = new Mock <RestApiRepository>(SettingsTwitter.TwitterAuthEndPoint);
            var twitterAuthProvider = new Mock <TwitterAuthProvider>(mockIRestApiRepository.Object, azureTableProvider);

            twitterProvider = new TwitterProvider(azureTableProvider, mockIRestApiRepository.Object, twitterAuthProvider.Object);
        }
        public static async Task <bool> StoreTokenHelper(string jobType, string code, string redirectUrl, string jobId)
        {
            var azureTableProvider = new AzureTableProvider(Settings.StorageAccountConnectionString);
            var client             = new RestApiRepository(SettingsTwitter.TwitterAuthEndPoint);
            IConnectorSourceProvider sourceProvider = new TwitterProvider(azureTableProvider, client, new TwitterAuthProvider(client, azureTableProvider));
            await sourceProvider.StoreOAuthToken(code, redirectUrl, jobId);

            return(true);
        }
示例#5
0
        public async Task <List <T> > GetAsync <T>(ODataQuery query)
        {
            var tableQuery = new TableQuery();

            tableQuery.FilterString = query.Filter;

            var results = await QueryAsync(tableQuery);

            return(AzureTableProvider.Convert <T>(results.ToArray()));
        }
示例#6
0
        private static async Task InitializeStorageEntities()
        {
            AzureTableProvider azureTableProvider = new AzureTableProvider(Settings.StorageAccountConnectionString);
            CloudTable         tokenTable         = await azureTableProvider.EnsureTableExistAsync(Settings.TokenTableName);

            CloudTable pageJobMappingTable = await azureTableProvider.EnsureTableExistAsync(Settings.PageJobMappingTableName);

            CloudTable settingsTable = await azureTableProvider.EnsureTableExistAsync(Settings.ConfigurationSettingsTableName);

            await GetConfigurationSettingFomStorge();
        }
示例#7
0
        private void LoadFromAzureTableStorage <T>() where T : class
        {
            var context = GetTableContext <T>();
            var data    = context.All().ToArray();

            var results = AzureTableProvider.Convert <T>(data);

            EntityConstructor.Process(results.ToArray());

            //DataStore.Add(results.ToArray());
            Publish(new DataLoaded <T>(results));
        }
示例#8
0
        public async static Task ProcessQueueMessage()
        {
            if (string.IsNullOrEmpty(Settings.AAdAppId) || string.IsNullOrEmpty(Settings.AAdAppSecret))
            {
                // Will throw exception if the connector is not configured.
                GetConfigurationSettingFomStorge().Wait();
            }

            queueProvider       = new AzureStorageQueueProvider(Settings.StorageAccountConnectionString, Settings.QueueName);
            azureTableProvider  = new AzureTableProvider(Settings.StorageAccountConnectionString);
            pageJobMappingTable = await azureTableProvider.EnsureTableExistAsync(Settings.PageJobMappingTableName);

            while (true)
            {
                try
                {
                    CloudQueueMessage queueMessage = queueProvider.GetMessage(queueVisibilityTimeOutInSec);

                    if (queueMessage != null)
                    {
                        await ProcessMessage(queueMessage, httpClient, pageJobMappingTable);

                        // Delete the message
                        queueProvider.DeleteMessage(queueMessage);
                    }
                    else
                    {
                        await Task.Delay(sleepTime);
                    }
                }
                catch (Exception ex)
                {
                    // If ProcessMessage throws an exception, it will reappear in queue after visibility timeout
                    Trace.TraceError($"Processing Failed in ProcessQueueMessage. Exception: {ex.Message}, {ex.StackTrace}");
                }
            }
        }
示例#9
0
 public UserStore(AzureTableProvider db)
 {
     this.db = db;
 }
 public ConnectorJobController()
 {
     azureTableProvider      = new AzureTableProvider(Settings.StorageAccountConnectionString);
     connectorSourceProvider = new FacebookProvider(azureTableProvider);
 }
 public DataIngestionController()
 {
     this.queueProvider = new AzureStorageQueueProvider(Settings.StorageAccountConnectionString, Settings.QueueName);
     this.azureTableProviderInstance = new AzureTableProvider(Settings.StorageAccountConnectionString);
 }
 public TwitterProvider(AzureTableProvider azureTableProviderInstance, IRestApiRepository Client, TwitterAuthProvider twitterAuthProvider)
     : base(azureTableProviderInstance, azureTableProviderInstance.GetAzureTableReference(Settings.TokenTableName))
 {
     this.Client = Client;
     this.twitterAuthProvider = twitterAuthProvider;
 }
 public FacebookProvider(AzureTableProvider azureTableProvider)
     : base(azureTableProvider, azureTableProvider.GetAzureTableReference(Settings.TokenTableName))
 {
     Client = new RestApiRepository(SettingsFB.FacebookBaseUrl);
 }
 public void TestInitialize()
 {
     azureTableProvider         = new AzureTableProvider(Settings.StorageAccountConnectionString);
     this.restApiRepositoryMock = new Mock <IRestApiRepository>();
     var twitterAuthProvider = new Mock <TwitterAuthProvider>(this.restApiRepositoryMock.Object, azureTableProvider);
 }
示例#15
0
 public SchemaInstaller(AzureTableProvider provider)
 {
     this.provider = provider;
 }
示例#16
0
 public ConfigurationController()
 {
     this.azureTableProvider = new AzureTableProvider(Settings.StorageAccountConnectionString);
 }
 public DataIngestion(HttpClient httpClient, AzureTableProvider azureTableProvider, CloudTable cloudTable)
 {
     this.httpClient          = httpClient;
     this.PageJobMappingTable = cloudTable;
     this.azureTableProvider  = azureTableProvider;
 }
 public T Add <T>(T entity) where T : HasId
 {
     GetOrCreate <T>().Add(AzureTableProvider.MakeTableEntity(entity));
     return(entity);
 }
示例#19
0
 public TwitterAuthProvider(IRestApiRepository httpClient, AzureTableProvider azureTableProvider)
 {
     this.Client             = httpClient;
     this.azureTableProvider = azureTableProvider;
     PageJobMappingTable     = azureTableProvider.GetAzureTableReference(Settings.PageJobMappingTableName);
 }
示例#20
0
 private AzureTableContext <DynamicTableEntity> GetTableContext(string name)
 {
     return(AzureTableProvider.GetContext <DynamicTableEntity>(name));
 }