Esempio n. 1
0
        private async Task <(string PlatformDataId, PlatformConnection platformConnection)> HandleFetchDataResult(string userId, string platformId,
                                                                                                                  PlatformDataFetchResult result, IAsyncDocumentSession session, CancellationToken cancellationToken)
        {
            var user = await session.LoadAsync <User>(userId, cancellationToken);

            var platformConnection = user.PlatformConnections.SingleOrDefault(pc => pc.PlatformId == platformId);

            if (platformConnection == null)
            {
                _logger.LogInformation(
                    "No platform connection for platform {platformId} exists for user with id {userId}. Will return null.", platformId,
                    user.Id);
                //platform connection has been removed between the time we initiated the data fetch and now.
                return(null, null);
            }

            var platformData = await _platformDataManager.AddPlatformData(userId, platformId, result.NumberOfGigs,
                                                                          result.PeriodStart,
                                                                          result.PeriodEnd, result.Ratings, result.AverageRating, result.Reviews, result.Achievements,
                                                                          result.RawData, session, cancellationToken);

            platformConnection.MarkAsDataFetchSuccessful();

            return(platformData.Id, platformConnection);
        }