private int calcTotalActivityCount(ActivityStats athleteStats)
        {
            int totalRides_Runs_Swims = athleteStats.AllRideTotals.Count.Value;

            totalRides_Runs_Swims += athleteStats.AllRunTotals.Count.Value;
            totalRides_Runs_Swims += athleteStats.AllSwimTotals.Count.Value;

            return(totalRides_Runs_Swims);
        }
Пример #2
0
        public static async Task GetStatsAsync(int id)
        {
            //Получаем токен
            TokenModel token;

            token = Token.RenewToken();
            Configuration.ApiKey.Add("access_token", token.Access_token);
            Configuration.ApiKey.Add("refresh_token", token.Refresh_token);
            Console.WriteLine(token.Access_token);

            //Подключаемся к БД
            string         connString    = "mongodb://192.168.1.200:27017";
            MongoClient    client        = new(connString);
            IMongoDatabase mongoDatabase = client.GetDatabase("strava");

            var api     = new AthletesApi();
            int?page    = null;
            int?perpage = null;

            try
            {
                ActivityStats activityStats = api.GetStats(id, page, perpage);
                var           collection    = mongoDatabase.GetCollection <All_Ride_Totals>("allridetotals");

                All_Ride_Totals ride_Totals = new()
                {
                    Count          = activityStats.AllRideTotals.Count,
                    Distance       = activityStats.AllRideTotals.Distance,
                    Moving_time    = activityStats.AllRideTotals.MovingTime,
                    Elapsed_time   = activityStats.AllRideTotals.ElapsedTime,
                    Elevation_gain = activityStats.AllRideTotals.ElevationGain
                };
                await collection.InsertOneAsync(ride_Totals);

                var collectionTotals = mongoDatabase.GetCollection <Recent_Ride_Totals>("recentridetotals");

                Recent_Ride_Totals recent_Ride = new()
                {
                    Count             = activityStats.RecentRideTotals.Count,
                    Distance          = activityStats.RecentRideTotals.Distance,
                    Moving_time       = activityStats.RecentRideTotals.MovingTime,
                    Elapsed_time      = activityStats.RecentRideTotals.ElapsedTime,
                    Elevation_gain    = activityStats.RecentRideTotals.ElevationGain,
                    Achievement_count = activityStats.RecentRideTotals.AchievementCount
                };
                await collectionTotals.InsertOneAsync(recent_Ride);
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
        }
    }
Пример #3
0
        public void Setup()
        {
            athleteApi = Substitute.For <IAthletesApi>();
            ActivityStats stats = new ActivityStats(
                allRideTotals: new ActivityTotal(count: totalRides),
                allRunTotals: new ActivityTotal(count: totalRuns),
                allSwimTotals: new ActivityTotal(count: totalSwims)
                );

            athleteApi.GetStatsAsync(Arg.Any <int>()).Returns(stats);

            activitiesApi = Substitute.For <IActivitiesApi>();

            List <SummaryActivity> activities = new List <SummaryActivity>
            {
                TestData.SummaryActivity1(),
                                   TestData.SummaryActivity2()
            };

            List <SummaryActivity> emptyActivities = new List <SummaryActivity>();

            activitiesApi.GetLoggedInAthleteActivitiesAsync(page: 1).Returns(Task.FromResult(activities));
            activitiesApi.GetLoggedInAthleteActivitiesAsync(page: 2).Returns(Task.FromResult(emptyActivities));

            List <SummaryActivity> activitiesAfter = new List <SummaryActivity>
            {
                TestData.SummaryActivity3(),
                                   TestData.SummaryActivity3(),
                                   TestData.SummaryActivity3(),
                                   TestData.SummaryActivity3(),
                                   TestData.SummaryActivity3(),
                                   TestData.SummaryActivity3(),
                                   TestData.SummaryActivity3(),
                                   TestData.SummaryActivity3(),
                                   TestData.SummaryActivity3()
            };

            activitiesApi.GetLoggedInAthleteActivitiesAsync(page: 1, after: Arg.Any <int>()).Returns(Task.FromResult(activitiesAfter));
            activitiesApi.GetLoggedInAthleteActivitiesAsync(page: 2, after: Arg.Any <int>()).Returns(Task.FromResult(emptyActivities));
        }
Пример #4
0
 public static ActivityStatsModel ToModel(this ActivityStats entity)
 {
     return(entity.MapTo <ActivityStats, ActivityStatsModel>());
 }