Exemplo n.º 1
0
        public static async Task GetActivityByIdAsync(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 apiInst          = new ActivitiesApi();
            var includeAllEffots = true;

            try
            {
                DetailedActivity result = apiInst.GetActivityById(id, includeAllEffots);
                var collection          = mongoDatabase.GetCollection <GetActivity>("activities");

                GetActivity getActivity = new()
                {
                    Id               = result.Id,
                    Name             = result.Name,
                    Distance         = result.Distance,
                    Moving_time      = result.MovingTime,
                    Start_date_local = result.StartDateLocal,
                    Average_speed    = result.AverageSpeed,
                    Max_speed        = result.MaxSpeed,
                    Average_temp     = result.AverageSpeed,
                    Workout_type     = result.WorkoutType,
                    Calories         = result.Calories
                };
                await collection.InsertOneAsync(getActivity);
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
        }
        public async Task <DetailedActivity> GetActivity(StravaToken token, long activityId)
        {
            try
            {
                await this.RefreshAccessTokenIfNeededAsync(token);

                var apiClient = new ApiClient {
                    AccessToken = token.AccessToken
                };
                var apiInstance = new ActivitiesApi(apiClient);

                return(apiInstance.GetActivityById(activityId, includeAllEfforts: false));
            }
            catch (Exception)
            {
                // TODO: log error
                return(null);
            }
        }