public override async Task <CrawlJobData> GetCrawlJobData( ProviderUpdateContext context, IDictionary <string, object> configuration, Guid organizationId, Guid userId, Guid providerDefinitionId) { if (configuration == null) { throw new ArgumentNullException(nameof(configuration)); } var skypeCrawlJobData = new SkypeCrawlJobData(); if (configuration.ContainsKey(SkypeConstants.KeyName.ApiKey)) { skypeCrawlJobData.ApiKey = configuration[SkypeConstants.KeyName.ApiKey].ToString(); } if (configuration.ContainsKey(SkypeConstants.KeyName.email)) { skypeCrawlJobData.email = configuration[SkypeConstants.KeyName.email].ToString(); } if (configuration.ContainsKey(SkypeConstants.KeyName.password)) { skypeCrawlJobData.password = configuration[SkypeConstants.KeyName.password].ToString(); } return(await Task.FromResult(skypeCrawlJobData)); }
public override async Task <bool> TestAuthentication( ProviderUpdateContext context, IDictionary <string, object> configuration, Guid organizationId, Guid userId, Guid providerDefinitionId) { var dropBoxCrawlJobData = new DropBoxCrawlJobData(configuration); try { if (dropBoxCrawlJobData.Token == null || string.IsNullOrEmpty(dropBoxCrawlJobData.Token.AccessToken)) { return(false); } var client = _dropboxClientFactory.CreateNew(dropBoxCrawlJobData); var usage = await client.GetSpaceUsageAsync(); } catch (Exception exception) { _log.Warn(() => "Could not add DropBox provider", exception); return(false); } return(true); }
public override Task <bool> TestAuthentication( ProviderUpdateContext context, IDictionary <string, object> configuration, Guid organizationId, Guid userId, Guid providerDefinitionId) { var adversusCrawlJobData = new AdversusCrawlJobData(); if (configuration.ContainsKey(AdversusConstants.KeyName.ApiKey)) { adversusCrawlJobData.ApiKey = configuration[AdversusConstants.KeyName.ApiKey].ToString(); } if (configuration.ContainsKey(AdversusConstants.KeyName.Username)) { adversusCrawlJobData.Username = configuration[AdversusConstants.KeyName.Username].ToString(); } if (configuration.ContainsKey(AdversusConstants.KeyName.Password)) { adversusCrawlJobData.Password = configuration[AdversusConstants.KeyName.Password].ToString(); } try { var client = _adversusClientFactory.CreateNew(adversusCrawlJobData); var result = client.GetAccountInformation(); return(Task.FromResult(result != null)); } catch (Exception exception) { context.Log.LogError("Could not add Adversus provider", exception); return(Task.FromResult(false)); } }
public override async Task <CrawlJobData> GetCrawlJobData( ProviderUpdateContext context, IDictionary <string, object> configuration, Guid organizationId, Guid userId, Guid providerDefinitionId) { if (configuration == null) { throw new ArgumentNullException(nameof(configuration)); } var sqlCrawlJobData = new SQLCrawlJobData(); if (configuration.ContainsKey(SQLConstants.KeyName.ConnectionString)) { sqlCrawlJobData.ConnectionString = configuration[SQLConstants.KeyName.ConnectionString].ToString(); } if (configuration.ContainsKey(SQLConstants.KeyName.TableName)) { sqlCrawlJobData.TableName = configuration[SQLConstants.KeyName.TableName].ToString(); } return(await Task.FromResult(sqlCrawlJobData)); }
public override async Task <CrawlJobData> GetCrawlJobData( ProviderUpdateContext context, IDictionary <string, object> configuration, Guid organizationId, Guid userId, Guid providerDefinitionId) { if (configuration == null) { throw new ArgumentNullException(nameof(configuration)); } var geomaticCrawlJobData = new GeomaticCrawlJobData(); if (configuration.ContainsKey(GeomaticConstants.KeyName.ApiKey)) { geomaticCrawlJobData.ApiKey = configuration[GeomaticConstants.KeyName.ApiKey].ToString(); } if (configuration.ContainsKey(GeomaticConstants.KeyName.FilePath)) { geomaticCrawlJobData.FilePath = configuration[GeomaticConstants.KeyName.FilePath].ToString(); } if (configuration.ContainsKey(GeomaticConstants.KeyName.FilePath1)) { geomaticCrawlJobData.FilePath1 = configuration[GeomaticConstants.KeyName.FilePath1].ToString(); } return(await Task.FromResult(geomaticCrawlJobData)); }
public override async Task <IDictionary <string, object> > GetHelperConfiguration( ProviderUpdateContext context, [NotNull] CrawlJobData jobData, Guid organizationId, Guid userId, Guid providerDefinitionId) { if (jobData == null) { throw new ArgumentNullException(nameof(jobData)); } var dictionary = new Dictionary <string, object>(); if (jobData is SalesforceCrawlJobData salesforceCrawlJobData) { //TODO add the transformations from specific CrawlJobData object to dictionary // add tests to GetHelperConfigurationBehaviour.cs dictionary.Add(SalesforceConstants.KeyName.ApiKey, salesforceCrawlJobData.ApiKey); dictionary.Add(SalesforceConstants.KeyName.UserName, salesforceCrawlJobData.UserName); dictionary.Add(SalesforceConstants.KeyName.Password, salesforceCrawlJobData.Password); dictionary.Add(SalesforceConstants.KeyName.ClientId, salesforceCrawlJobData.ClientId); dictionary.Add(SalesforceConstants.KeyName.ClientSecret, salesforceCrawlJobData.ClientSecret); dictionary.Add(SalesforceConstants.KeyName.GrantType, salesforceCrawlJobData.GrantType); } return(await Task.FromResult(dictionary)); }
public override async Task <CrawlJobData> GetCrawlJobData( ProviderUpdateContext context, IDictionary <string, object> configuration, Guid organizationId, Guid userId, Guid providerDefinitionId) { if (configuration == null) { throw new ArgumentNullException(nameof(configuration)); } var modulusapiCrawlJobData = new ModulusAPICrawlJobData(); if (configuration.ContainsKey(ModulusAPIConstants.KeyName.ApiKey)) { modulusapiCrawlJobData.ApiKey = configuration[ModulusAPIConstants.KeyName.ApiKey].ToString(); } if (configuration.ContainsKey(ModulusAPIConstants.KeyName.Url)) { modulusapiCrawlJobData.Url = configuration[ModulusAPIConstants.KeyName.Url].ToString(); } return(await Task.FromResult(modulusapiCrawlJobData)); }
public override async Task <CrawlJobData> GetCrawlJobData( ProviderUpdateContext context, IDictionary <string, object> configuration, Guid organizationId, Guid userId, Guid providerDefinitionId) { if (configuration == null) { throw new ArgumentNullException(nameof(configuration)); } var servicenowCrawlJobData = new ServiceNowCrawlJobData(); if (configuration.ContainsKey(ServiceNowConstants.KeyName.Username)) { servicenowCrawlJobData.Username = configuration[ServiceNowConstants.KeyName.Username].ToString(); } if (configuration.ContainsKey(ServiceNowConstants.KeyName.Password)) { servicenowCrawlJobData.Password = configuration[ServiceNowConstants.KeyName.Password].ToString(); } if (configuration.ContainsKey(ServiceNowConstants.KeyName.BaseUrl)) { servicenowCrawlJobData.BaseUrl = configuration[ServiceNowConstants.KeyName.BaseUrl].ToString(); } return(await Task.FromResult(servicenowCrawlJobData)); }
/********************************************************************************************************** * METHODS **********************************************************************************************************/ public override async Task <CrawlJobData> GetCrawlJobData( ProviderUpdateContext context, IDictionary <string, object> configuration, Guid organizationId, Guid userId, Guid providerDefinitionId) { if (configuration == null) { throw new ArgumentNullException(nameof(configuration)); } var sitecoreCrawlJobData = new SitecoreCrawlJobData(); if (configuration.ContainsKey(SitecoreConstants.KeyName.CertData)) { sitecoreCrawlJobData.CertData = configuration[SitecoreConstants.KeyName.CertData].ToString(); } if (configuration.ContainsKey(SitecoreConstants.KeyName.Uri)) { sitecoreCrawlJobData.Uri = configuration[SitecoreConstants.KeyName.Uri].ToString(); } return(await Task.FromResult(sitecoreCrawlJobData)); }
public override Task <bool> TestAuthentication( ProviderUpdateContext context, IDictionary <string, object> configuration, Guid organizationId, Guid userId, Guid providerDefinitionId) { throw new NotImplementedException(); }
public override async Task <IDictionary <string, object> > GetHelperConfiguration( ProviderUpdateContext context, [NotNull] CrawlJobData jobData, Guid organizationId, Guid userId, Guid providerDefinitionId) { return(await GetHelperConfiguration(context, jobData, organizationId, userId, providerDefinitionId, "/")); }
public override Task <bool> TestAuthentication( ProviderUpdateContext context, IDictionary <string, object> configuration, Guid organizationId, Guid userId, Guid providerDefinitionId) { return(Task.FromResult(true)); }
/********************************************************************************************************** * METHODS **********************************************************************************************************/ public override async Task <CrawlJobData> GetCrawlJobData( ProviderUpdateContext context, IDictionary <string, object> configuration, Guid organizationId, Guid userId, Guid providerDefinitionId) { return(await Task.FromResult(new HelloWorldCrawlJobData())); }
public override Task <IDictionary <string, object> > GetHelperConfiguration( ProviderUpdateContext context, CrawlJobData jobData, Guid organizationId, Guid userId, Guid providerDefinitionId, string folderId) { return(GetHelperConfiguration(context, jobData, organizationId, userId, providerDefinitionId)); }
public override Task <IDictionary <string, object> > GetHelperConfiguration( ProviderUpdateContext context, CrawlJobData jobData, Guid organizationId, Guid userId, Guid providerDefinitionId, string folderId) { throw new NotImplementedException(); }
public override async Task <CrawlJobData> GetCrawlJobData(ProviderUpdateContext context, IDictionary <string, object> configuration, Guid organizationId, Guid userId, Guid providerDefinitionId) { if (configuration == null) { throw new ArgumentNullException(nameof(configuration)); } var result = new GleifExternalSearchJobData(configuration); return(await Task.FromResult(result)); }
public override async Task <CrawlJobData> GetCrawlJobData( ProviderUpdateContext context, IDictionary <string, object> configuration, Guid organizationId, Guid userId, Guid providerDefinitionId) { if (configuration == null) { throw new ArgumentNullException(nameof(configuration)); } var twitterCrawlJobData = new TwitterCrawlJobData(); var authUrl = "https://api.twitter.com/oauth2/token"; var authHeaderFormat = "Basic {0}"; var authHeader = string.Format(authHeaderFormat, Convert.ToBase64String(Encoding.UTF8.GetBytes(Uri.EscapeDataString(consumerKey) + ":" + Uri.EscapeDataString(consumerSecret)))); var postBody = "grant_type=client_credentials"; HttpWebRequest authRequest = (HttpWebRequest)WebRequest.Create(authUrl); authRequest.Headers.Add("Authorization", authHeader); authRequest.Method = "POST"; authRequest.ContentType = "application/x-www-form-urlencoded;charset=UTF-8"; using (Stream stream = authRequest.GetRequestStream()) { byte[] content = ASCIIEncoding.ASCII.GetBytes(postBody); stream.Write(content, 0, content.Length); } WebResponse authResponse = authRequest.GetResponse(); TwitAuthenticateResponse twitAuthResponse; using (authResponse) { using (var reader = new StreamReader(authResponse.GetResponseStream())) { var objectText = reader.ReadToEnd(); twitAuthResponse = JsonConvert.DeserializeObject <TwitAuthenticateResponse>(objectText); twitterCrawlJobData.ApiKey = twitAuthResponse.access_token; } } if (configuration.ContainsKey(TwitterConstants.KeyName.ApiKey)) { twitterCrawlJobData.ApiKey = twitAuthResponse.access_token; } if (configuration.ContainsKey(TwitterConstants.KeyName.Screen_name)) { twitterCrawlJobData.Screen_name = configuration[TwitterConstants.KeyName.Screen_name].ToString(); } return(await Task.FromResult(twitterCrawlJobData)); }
public override async Task <CrawlJobData> GetCrawlJobData( ProviderUpdateContext context, IDictionary <string, object> configuration, Guid organizationId, Guid userId, Guid providerDefinitionId) { if (configuration == null) { throw new ArgumentNullException(nameof(configuration)); } var sharepointCrawlJobData = new SharePointCrawlJobData(); if (configuration.ContainsKey(SharePointConstants.KeyName.Url)) { sharepointCrawlJobData.Url = configuration[SharePointConstants.KeyName.Url].ToString(); } if (configuration.ContainsKey(SharePointConstants.KeyName.DeltaCrawlEnabled)) { sharepointCrawlJobData.DeltaCrawlEnabled = bool.Parse(configuration[SharePointConstants.KeyName.DeltaCrawlEnabled].ToString()); } if (configuration.ContainsKey(SharePointConstants.KeyName.UserName)) { sharepointCrawlJobData.UserName = configuration[SharePointConstants.KeyName.UserName].ToString(); } if (configuration.ContainsKey(SharePointConstants.KeyName.Password)) { sharepointCrawlJobData.Password = configuration[SharePointConstants.KeyName.Password].ToString(); } sharepointCrawlJobData.ClientId = ConfigurationManager.AppSettings.GetValue <string>("Providers.SharePointClientID", null); sharepointCrawlJobData.ClientSecret = ConfigurationManager.AppSettings.GetValue <string>("Providers.SharePointClientSecret", null); string apiVersion = "9.1"; string webApiUrl = $"{sharepointCrawlJobData.Url}/api/data/v{apiVersion}/"; if (sharepointCrawlJobData.UserName != null && sharepointCrawlJobData.Password != null) { Crawling.SharePoint.Infrastructure.SharePointClient.RefreshToken(sharepointCrawlJobData); } else { var clientCredential = new ClientCredential(sharepointCrawlJobData.ClientId, sharepointCrawlJobData.ClientSecret); var authParameters = await AuthenticationParameters.CreateFromResourceUrlAsync(new Uri(webApiUrl)); var authContext = new AuthenticationContext(authParameters.Authority); var authResult = authContext.AcquireTokenAsync(authParameters.Resource, clientCredential).Result; sharepointCrawlJobData.TargetApiKey = authResult.AccessToken; } return(await Task.FromResult(sharepointCrawlJobData)); }
public override async Task <CrawlJobData> GetCrawlJobData(ProviderUpdateContext context, [NotNull] IDictionary <string, object> configuration, Guid organizationId, Guid userId, Guid providerDefinitionId) { if (configuration == null) { throw new ArgumentNullException(nameof(configuration)); } var gotowebinarCrawlJobData = new GoToWebinarCrawlJobData(); if (configuration.ContainsKey("AccessToken")) { gotowebinarCrawlJobData.AccessToken = configuration["AccessToken"].ToString(); } return(gotowebinarCrawlJobData); }
public override Task <bool> TestAuthentication( ProviderUpdateContext context, IDictionary <string, object> configuration, Guid organizationId, Guid userId, Guid providerDefinitionId) { var onedriveClient = _onedriveClientFactory.CreateNew(new OneDriveCrawlJobData(configuration)); var accountInformation = onedriveClient.GetAccountInformation(); if (accountInformation.AccountId != string.Empty) { return(Task.FromResult(true)); } return(Task.FromResult(false)); }
public override async Task <IDictionary <string, object> > GetHelperConfiguration( ProviderUpdateContext context, [NotNull] CrawlJobData jobData, Guid organizationId, Guid userId, Guid providerDefinitionId) { if (jobData == null) { throw new ArgumentNullException(nameof(jobData)); } if (jobData is HubSpotCrawlJobData hubspotCrawlJobData) { if (_notifications != null) { _notifications.Publish <ProviderMessageCommand>(new ProviderMessageCommand() { OrganizationId = organizationId, ProviderDefinitionId = providerDefinitionId, ProviderId = this.Id, ProviderName = this.Name, Message = "Authenticating", UserId = userId }); } var result = hubspotCrawlJobData.ToDictionary(); result.Add("webhooks", new List <object>() { new { DisplayName = "New Contact", Name = "contact.creation", Status = "ACTIVE", Description = "When a new contact is created." }, new { DisplayName = "Deleted Contact", Name = "contact.deletion", Status = "ACTIVE", Description = "When a contact is deleted." }, new { DisplayName = "Contact Update", Name = "contact.propertyChange", Status = "ACTIVE", Description = "When a contact is updated." }, new { DisplayName = "New Company", Name = "company.creation", Status = "ACTIVE", Description = "When a company is created." }, new { DisplayName = "Deleted Company", Name = "company.deletion", Status = "ACTIVE", Description = "When a company is deleted." }, new { DisplayName = "Company Update", Name = "company.propertyChange", Status = "ACTIVE", Description = "When a company is updated." }, new { DisplayName = "New Deal", Name = "deal.creation", Status = "ACTIVE", Description = "When a deal is created." }, new { DisplayName = "Deleted Deal", Name = "deal.deletion", Status = "ACTIVE", Description = "When a deal is deleted" }, new { DisplayName = "Deal Update", Name = "deal.propertyChange", Status = "ACTIVE", Description = "When a deal is updated." } }); result.Add("expectedStatistics", hubspotCrawlJobData.ExpectedStatistics); return(await Task.FromResult(result)); } throw new InvalidOperationException($"Unpexected data type for HubSpotJobCrawlData, {jobData.GetType()}"); }
/********************************************************************************************************** * METHODS **********************************************************************************************************/ public override async Task <CrawlJobData> GetCrawlJobData( ProviderUpdateContext context, IDictionary <string, object> configuration, Guid organizationId, Guid userId, Guid providerDefinitionId) { if (configuration == null) { throw new ArgumentNullException(nameof(configuration)); } var exchangesharedmailboxCrawlJobData = new ExchangeSharedMailboxCrawlJobData(); // if (configuration.ContainsKey(ExchangeSharedMailboxConstants.KeyName.ApiKey)) // { exchangesharedmailboxCrawlJobData.ApiKey = configuration[ExchangeSharedMailboxConstants.KeyName.ApiKey].ToString(); } return(await Task.FromResult(exchangesharedmailboxCrawlJobData)); }
public override Task <IDictionary <string, object> > GetHelperConfiguration( ProviderUpdateContext context, [NotNull] CrawlJobData jobData, Guid organizationId, Guid userId, Guid providerDefinitionId) { if (jobData == null) { throw new ArgumentNullException(nameof(jobData)); } if (jobData is SnowflakeConnectorJobData result) { return(Task.FromResult(result.ToDictionary())); } throw new InvalidOperationException($"Unexpected data type for SnowflakeConnectorJobData, {jobData.GetType()}"); }
public override async Task <CrawlJobData> GetCrawlJobData(ProviderUpdateContext context, [NotNull] IDictionary <string, object> configuration, Guid organizationId, Guid userId, Guid providerDefinitionId) { if (configuration == null) { throw new ArgumentNullException(nameof(configuration)); } var harvestcrawlerCrawlJobData = new HarvestCrawlerCrawlJobData(); if (configuration.ContainsKey("AccountID")) { harvestcrawlerCrawlJobData.AccountID = configuration["AccountID"].ToString(); } if (configuration.ContainsKey("ApiToken")) { harvestcrawlerCrawlJobData.AccountID = configuration["ApiToken"].ToString(); } return(harvestcrawlerCrawlJobData); }
/********************************************************************************************************** * METHODS **********************************************************************************************************/ public override async Task <CrawlJobData> GetCrawlJobData( ProviderUpdateContext context, IDictionary <string, object> configuration, Guid organizationId, Guid userId, Guid providerDefinitionId) { var jobData = new FileSystemCrawlJobData(configuration); if (jobData.StartingPoints == null) { return(null); } //long fileCount = 0; //long folderCount = 0; //foreach (var folder in jobData.StartingPoints) //{ // fileCount += System.IO.Directory.GetFiles(folder.EntryPoint, "*.*", SearchOption.AllDirectories).Count(); // folderCount += System.IO.Directory.GetDirectories(folder.EntryPoint, "*.*", SearchOption.AllDirectories).Count(); //} ////Remove the current folder //if (fileCount > 0) // fileCount = fileCount - 1; //jobData.ExpectedTaskCount = fileCount + folderCount; var entityTypeStatistics = new ExpectedStatistics(); //entityTypeStatistics.EntityTypeStatistics.Add(new EntityTypeStatistics(EntityType.Files.Directory, folderCount, 0)); //entityTypeStatistics.EntityTypeStatistics.Add(new EntityTypeStatistics(EntityType.Files.File, fileCount, 0)); jobData.ExpectedData = 0; jobData.ExpectedTime = new TimeSpan(0, 0, 0); //jobData.ExpectedTaskCount = folderCount + fileCount; jobData.ExpectedStatistics = entityTypeStatistics; return(await Task.FromResult(jobData)); }
public override async Task <bool> TestAuthentication( ProviderUpdateContext context, IDictionary <string, object> configuration, Guid organizationId, Guid userId, Guid providerDefinitionId) { var hubspotCrawlJobData = new HubSpotCrawlJobData(configuration); try { var client = _hubspotClientFactory.CreateNew(hubspotCrawlJobData); var result = await client.GetContactsFromAllListsAsync(new List <string>(), 1, 0); return(result != null); } catch (Exception exception) { _log.Warn(() => "Could not add HubSpot provider", exception); return(false); } }
public override async Task <IDictionary <string, object> > GetHelperConfiguration( ProviderUpdateContext context, CrawlJobData jobData, Guid organizationId, Guid userId, Guid providerDefinitionId) { if (jobData == null) { throw new ArgumentNullException(nameof(jobData)); } var dictionary = new Dictionary <string, object>(); if (jobData is SitecoreCrawlJobData sitecoreCrawlJobData) { dictionary.Add(SitecoreConstants.KeyName.CertData, sitecoreCrawlJobData.CertData); dictionary.Add(SitecoreConstants.KeyName.Uri, sitecoreCrawlJobData.Uri); } return(await Task.FromResult(dictionary)); }
public override async Task <CrawlJobData> GetCrawlJobData( ProviderUpdateContext context, IDictionary <string, object> configuration, Guid organizationId, Guid userId, Guid providerDefinitionId) { if (configuration == null) { throw new ArgumentNullException(nameof(configuration)); } var trinetCrawlJobData = new TrinetCrawlJobData(); if (configuration.ContainsKey(TrinetConstants.KeyName.ApiKey)) { trinetCrawlJobData.ApiKey = configuration[TrinetConstants.KeyName.ApiKey].ToString(); trinetCrawlJobData.CompanyId = configuration[TrinetConstants.KeyName.CompanyId].ToString(); } return(await Task.FromResult(trinetCrawlJobData)); }
public override async Task <CrawlJobData> GetCrawlJobData( ProviderUpdateContext context, IDictionary <string, object> configuration, Guid organizationId, Guid userId, Guid providerDefinitionId) { if (configuration == null) { throw new ArgumentNullException(nameof(configuration)); } var navisionCrawlJobData = new NavisionCrawlJobData(); if (configuration.ContainsKey(NavisionConstants.KeyName.ApiKey)) { navisionCrawlJobData.ApiKey = configuration[NavisionConstants.KeyName.ApiKey].ToString(); } if (configuration.ContainsKey(NavisionConstants.KeyName.Url)) { navisionCrawlJobData.Url = configuration[NavisionConstants.KeyName.Url].ToString(); } if (configuration.ContainsKey(NavisionConstants.KeyName.DeltaCrawlEnabled)) { navisionCrawlJobData.DeltaCrawlEnabled = bool.Parse(configuration[NavisionConstants.KeyName.DeltaCrawlEnabled].ToString()); } if (configuration.ContainsKey(NavisionConstants.KeyName.UserName)) { navisionCrawlJobData.UserName = configuration[NavisionConstants.KeyName.UserName].ToString(); } if (configuration.ContainsKey(NavisionConstants.KeyName.Password)) { navisionCrawlJobData.Password = configuration[NavisionConstants.KeyName.Password].ToString(); } navisionCrawlJobData.ClientId = ConfigurationManager.AppSettings.GetValue <string>("Providers.NavisionClientId", null); navisionCrawlJobData.ClientSecret = ConfigurationManager.AppSettings.GetValue <string>("Providers.NavisionClientSecret", null); return(await Task.FromResult(navisionCrawlJobData)); }
public override async Task <IDictionary <string, object> > GetHelperConfiguration( ProviderUpdateContext context, [NotNull] CrawlJobData jobData, Guid organizationId, Guid userId, Guid providerDefinitionId) { if (jobData == null) { throw new ArgumentNullException(nameof(jobData)); } var dictionary = new Dictionary <string, object>(); if (jobData is ModulusAPICrawlJobData modulusapiCrawlJobData) { //TODO add the transformations from specific CrawlJobData object to dictionary // add tests to GetHelperConfigurationBehaviour.cs dictionary.Add(ModulusAPIConstants.KeyName.ApiKey, modulusapiCrawlJobData.ApiKey); } return(await Task.FromResult(dictionary)); }