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 })); }
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); }
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); }
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)); }
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); }
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); }
public async Task Get_Multiple_ActivityLogsList() { ActivityLogsList response = await GetActivityLogsList2(new DateTime(2017, 9, 4)); response.Activities.Count.Should().Be(2); }