public JsonResult GetFitBitRecentActivities(string access_token, DateTimeOffset?start_date = null, DateTimeOffset?end_date = null)
        {
            var tempToken = new FitBitAuthenticationToken {
                AccessToken = access_token
            };
            var activityHistoryJsonResult = this.dataSource.GetFitBitActivityHistory(tempToken).Result;

            if (start_date == null && end_date == null)
            {
                return(activityHistoryJsonResult);
            }

            ActivityLogsList  rawActivityHistory     = (ActivityLogsList)activityHistoryJsonResult.Value;
            List <Activities> correctActivityHistory = new List <Activities>();

            if (start_date == null && end_date != null)
            {
                DateTimeOffset extractedEndDate = (DateTimeOffset)end_date;
                foreach (var item in rawActivityHistory.Activities)
                {
                    if (item.StartTime <= extractedEndDate)
                    {
                        correctActivityHistory.Add(item);
                    }
                }
                return(new JsonResult(new ActivityLogsList {
                    Activities = correctActivityHistory
                }));
            }

            if (start_date != null && end_date == null)
            {
                DateTimeOffset extractedStartDate = (DateTimeOffset)start_date;
                foreach (var item in rawActivityHistory.Activities)
                {
                    if (item.StartTime >= extractedStartDate)
                    {
                        correctActivityHistory.Add(item);
                    }
                }
                return(new JsonResult(new ActivityLogsList {
                    Activities = correctActivityHistory
                }));
            }

            DateTimeOffset startDate = (DateTimeOffset)start_date;
            DateTimeOffset endDate   = (DateTimeOffset)end_date;

            foreach (var activity in rawActivityHistory.Activities)
            {
                if (activity.StartTime >= startDate && activity.StartTime <= endDate)
                {
                    correctActivityHistory.Add(activity);
                }
            }

            return(new JsonResult(new ActivityLogsList {
                Activities = correctActivityHistory
            }));
        }
Beispiel #2
0
        public async Task Check_TimeZone_ActivityLogsList()
        {
            ActivityLogsList response = await GetActivityLogsList2(new DateTime(2017, 9, 4));

            const string origOffset = "-07:00:00";

            response.Activities[0].StartTime.Offset.ToString().Should().Be(origOffset);
            response.Activities[1].StartTime.Offset.ToString().Should().Be(origOffset);
        }
Beispiel #3
0
        public void Can_Deserialize_ActivityLogsList()
        {
            string content  = SampleDataHelper.GetContent("GetActivityLogsList.json");
            var    settings = new JsonSerializerSettings {
                DateParseHandling = DateParseHandling.DateTimeOffset
            };
            ActivityLogsList logList = JsonConvert.DeserializeObject <ActivityLogsList>(content, settings);

            ValidateActivity(logList.Activities);
        }
        public void GetFitBitActivityHistoryWithValidAuthToken_ActivityHistoryRetrieved()
        {
            sut = MakeSut();
            var runningHistoryTask = sut.GetFitBitActivityHistory(fitBitAuthToken);

            runningHistoryTask.Result.Value.Should().NotBeNull();
            runningHistoryTask.Result.Value.Should().NotBe(string.Empty);
            ActivityLogsList actualRunningHistory = (ActivityLogsList)runningHistoryTask.Result.Value;

            actualRunningHistory.Should().BeOfType <ActivityLogsList>();
            actualRunningHistory.Activities.Should().HaveCount(2);
        }
        public async Task <ActivityLogsList> GetAuthenticatedUserLogList()
        {
            await Task.Delay(0);

            var fitBitActivities = context.FitBitActivityItems;
            var activityLogsList = new ActivityLogsList();

            foreach (var item in fitBitActivities)
            {
                activityLogsList.Activities.Add(item.ToDTO());
            }
            return(activityLogsList);
        }
Beispiel #6
0
        public JsonResult PostFastestFitBitActivity([FromBody] ActivityLogsList activityLogsList)
        {
            if (activityLogsList == null || activityLogsList.Activities == null || activityLogsList.Activities.Count == 0)
            {
                return(new JsonResult(null));
            }

            Activities kingOfTheHill = activityLogsList.Activities[0];

            foreach (Activities activity in activityLogsList.Activities)
            {
                if (activity.Speed > kingOfTheHill.Speed)
                {
                    kingOfTheHill = activity;
                }
            }
            return(new JsonResult(kingOfTheHill));
        }
Beispiel #7
0
        private async Task <ActivityLogsList> GetActivityLogsList2(DateTime date)
        {
            string content = SampleDataHelper.GetContent("GetActivityLogsList2.json");
            Func <HttpResponseMessage> responseMessage = new Func <HttpResponseMessage>(() => new HttpResponseMessage(HttpStatusCode.OK)
            {
                Content = new StringContent(content)
            });

            Action <HttpRequestMessage, CancellationToken> verification = new Action <HttpRequestMessage, CancellationToken>((message, token) =>
            {
                Assert.AreEqual(HttpMethod.Get, message.Method);
                Assert.AreEqual("https://api.fitbit.com/1/user/-/activities/list.json?afterDate=2017-09-04&sort=asc&limit=20&offset=0", message.RequestUri.AbsoluteUri);
            });

            FitbitClient fitbitClient = Helper.CreateFitbitClient(responseMessage, verification);

            ActivityLogsList response = await fitbitClient.GetActivityLogsListAsync(date);

            return(response);
        }
Beispiel #8
0
        public async Task GetActivityLogsListAsync_Success()
        {
            string content = SampleDataHelper.GetContent("GetActivityLogsList.json");

            Func <HttpResponseMessage> responseMessage = new Func <HttpResponseMessage>(() => new HttpResponseMessage(HttpStatusCode.OK)
            {
                Content = new StringContent(content)
            });

            Action <HttpRequestMessage, CancellationToken> verification = new Action <HttpRequestMessage, CancellationToken>((message, token) =>
            {
                Assert.AreEqual(HttpMethod.Get, message.Method);
                Assert.AreEqual("https://api.fitbit.com/1/user/-/activities/list.json?afterDate=2017-01-01&sort=asc&limit=20&offset=0", message.RequestUri.AbsoluteUri);
            });

            FitbitClient fitbitClient = Helper.CreateFitbitClient(responseMessage, verification);

            ActivityLogsList response = await fitbitClient.GetActivityLogsListAsync(null, new DateTime(2017, 1, 1));

            ValidateActivity(response.Activities);
        }
Beispiel #9
0
        public async Task Get_Multiple_ActivityLogsList()
        {
            ActivityLogsList response = await GetActivityLogsList2(new DateTime(2017, 9, 4));

            response.Activities.Count.Should().Be(2);
        }