Example #1
0
        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));
        }
Example #2
0
        public SkypeClient(ILogger log, SkypeCrawlJobData skypeCrawlJobData, IRestClient client) // TODO: pass on any extra dependencies
        {
            if (skypeCrawlJobData == null)
            {
                throw new ArgumentNullException(nameof(skypeCrawlJobData));
            }

            if (client == null)
            {
                throw new ArgumentNullException(nameof(client));
            }

            _exchangeService = new ExchangeService(ExchangeVersion.Exchange2010_SP1);
            _exchangeService.UseDefaultCredentials = false;
            _exchangeService.Credentials           = new WebCredentials(skypeCrawlJobData.email, skypeCrawlJobData.password);
            _exchangeService.AutodiscoverUrl(skypeCrawlJobData.email);

            _imHistory = new List <EmailMessage>();

            this.log    = log ?? throw new ArgumentNullException(nameof(log));
            this.client = client ?? throw new ArgumentNullException(nameof(client));

            // TODO use info from skypeCrawlJobData to instantiate the connection
            client.BaseUrl = new Uri(BaseUri);
            client.AddDefaultParameter("api_key", skypeCrawlJobData.ApiKey, ParameterType.QueryString);
        }