private static void UpdateExistingEntryForUser(string code, UserFitnessProvider mapMyFitnessDetails,
     AccessTokenResponse response, int mapMyFitnessUserId)
 {
     mapMyFitnessDetails.AuthorizationToken = code;
     mapMyFitnessDetails.AccessToken = response.access_token;
     mapMyFitnessDetails.ExternalUserId = mapMyFitnessUserId.ToString();
 }
 private void CreateNewEntryForUser(string currentUserId, string code, AccessTokenResponse response,
     int mapMyFitnessUserId)
 {
     var fitnessProvider = _dbContext.GetFitnessProvider(SupportedFitnessProvider.MapMyFitness);
     var details = new UserFitnessProvider
     {
         UserId = currentUserId,
         FitnessProvider = fitnessProvider,
         AuthorizationToken = code,
         AccessToken = response.access_token,
         ExternalUserId = mapMyFitnessUserId.ToString()
     };
     _dbContext.UserFitnessProviders.Add(details);
 }
        public static ShoeTrackerDbContext WithUserFitnessProvider(
            this ShoeTrackerDbContext context,
            string fitnessProviderName,
            string currentUserId,
            string accessToken = null,
            string authorizationToken = null,
            string externalUserId = null)
        {
            var maxID = 1L;
            if (context.UserFitnessProviders.Any())
            {
                maxID = context.UserFitnessProviders.Max(s => s.UserFitnessProviderId);
            }

            var fitnessProvider = context.FitnessProviders.First(f => f.Name == fitnessProviderName);

            var userFitnessProvider = new UserFitnessProvider
            {
                AccessToken = accessToken ?? Guid.NewGuid().ToString(),
                AuthorizationToken = authorizationToken ?? Guid.NewGuid().ToString(),
                ExternalUserId = externalUserId ?? Guid.NewGuid().ToString(),
                UserFitnessProviderId = maxID,
                FitnessProvider = fitnessProvider,
                UserId = currentUserId
            };

            context.UserFitnessProviders.Attach(userFitnessProvider);

            return context;
        }
 private static void AssertMapMyFitnessAuthorizationDataIsSaved(UserFitnessProvider savedData, 
     string authorizationCode,
     string accessToken, 
     int mmfUserId, 
     FakeShoeTrackerDbContext dbContext)
 {
     Assert.That(savedData.AuthorizationToken, Is.EqualTo(authorizationCode));
     Assert.That(savedData.AccessToken, Is.EqualTo(accessToken));
     Assert.That(savedData.ExternalUserId, Is.EqualTo(mmfUserId.ToString()));
     Assert.That(dbContext.NumerOfTimesSaveChangesCalled, Is.EqualTo(1));
 }
        private IEnumerable<Workout> GetMapMyFitnessWorkouts(UserFitnessProvider mapMyFitnessDetails, DateTime? updatedAfter)
        {
            var mapmyFitnessUserId = Int32.Parse(mapMyFitnessDetails.ExternalUserId);
            var mapmyFitnessWorkouts = _mapMyfitnessApi.GetWorkoutsByUser(mapmyFitnessUserId, mapMyFitnessDetails.AccessToken, updatedAfter);

            return mapmyFitnessWorkouts;
        }