private async Task SavePageJobEntity()

in Twitter/SDK/TwitterProvider.cs [101:144]


        private async Task SavePageJobEntity(string jobId, string accessToken)
        {
            string page_id = string.Empty;
            SourceInfoTwitter sourceInfo = new SourceInfoTwitter();

            var pageJobMappingTable = azureTableProvider.GetAzureTableReference(Settings.PageJobMappingTableName);
            Expression<Func<PageJobEntity, bool>> filter = (entity => entity.RowKey == $"{jobId}");
            List<PageJobEntity> pageJobEntityList = await azureTableProvider.QueryEntitiesAsync<PageJobEntity>(pageJobMappingTable, filter);
            PageJobEntity pageJobEntity;
            if (pageJobEntityList.Count != 0)
            {
                pageJobEntity = pageJobEntityList[0];
                SourceInfoTwitter SourceInfoTwitter = JsonConvert.DeserializeObject<SourceInfoTwitter>(pageJobEntity.SourceInfo);
                sourceInfo.SinceId = SourceInfoTwitter.SinceId;
            }
            else
            {
                sourceInfo.SinceId = "0";
            }

            foreach (var pair in accessToken.Split('&'))
            {
                var keys = pair.Split('=');
                if (keys[0].Equals("oauth_token"))
                {
                    sourceInfo.ClientToken = keys[1];
                }
                if (keys[0].Equals("oauth_token_secret"))
                {
                    sourceInfo.ClientSecret = keys[1];
                }
                if (keys[0].Equals("user_id"))
                {
                    page_id = keys[1];
                }
            }

            pageJobEntity = new PageJobEntity(page_id, jobId)
            {
                SourceInfo = JsonConvert.SerializeObject(sourceInfo)
            };

            await azureTableProvider.InsertOrReplaceEntityAsync(pageJobMappingTable, pageJobEntity);
        }