public void FitnessActivity_CRUD() { // FYI - For comparing dates Healthgraph API doesn't seem to support fidelity down to the millisecond level. //Create var newActivity = new FitnessActivitiesNewModel { Type = "Running", Equipment = "Treadmill", StartTime = DateTime.Now, TotalDistance = 237903.79842947799d, Duration = 120, AverageHeartRate = 100, HeartRate = new List<HeartRateModel> { new HeartRateModel { Timestamp = 60, HeartRate = 100 } }, TotalCalories = 44, Notes = "Integration test!", Path = new List<PathModel> { new PathModel { Timestamp = 0, Latitude = 100, Longitude = 100, Altitude = 0, Type = "start" }, new PathModel { Timestamp = 120, Latitude = 102, Longitude = 104, Altitude = 0, Type = "end" } }, PostToFacebook = false, PostToTwitter = false, DetectPauses = false }; var uri = ActivitiesRequest.CreateActivity(newActivity); Assert.IsTrue(!string.IsNullOrEmpty(uri)); //Read from Feed var activitiesItem = ActivitiesRequest.GetFeedPage().Items.FirstOrDefault(); Assert.IsNotNull(activitiesItem); Assert.AreEqual(newActivity.Type, activitiesItem.Type); Assert.AreEqual(newActivity.StartTime.ToString(), activitiesItem.StartTime.ToString()); Assert.AreEqual(newActivity.TotalDistance, activitiesItem.TotalDistance); Assert.AreEqual(newActivity.Duration, activitiesItem.Duration); Assert.AreEqual(uri, activitiesItem.Uri); /* //Read from past var activitiesDetail = ActivitiesRequest.GetActivity(uri); AssertFitnessActivities(newActivity, activitiesDetail); Assert.AreEqual(newActivity.TotalCalories, activitiesDetail.TotalCalories); Assert.AreEqual(uri, activitiesDetail.Uri); //Update activitiesDetail.Type = "Hiking"; activitiesDetail.Equipment = "None"; activitiesDetail.StartTime = activitiesDetail.StartTime.AddHours(1); var activitiesDetailUpdated = ActivitiesRequest.UpdateActivity(activitiesDetail); AssertFitnessActivities(activitiesDetail, activitiesDetailUpdated); Assert.AreEqual(activitiesDetail.TotalCalories, activitiesDetailUpdated.TotalCalories); Assert.AreEqual(uri, activitiesDetailUpdated.Uri); */ //Delete ActivitiesRequest.DeleteActivity(uri); }
public void Init() { ValidActivity = new FitnessActivitiesPastModel { Type = FitnessActivitiesEndpoint.ValidType.First(), SecondaryType = string.Empty, Equipment = FitnessActivitiesEndpoint.ValidEquipment.First(), StartTime = DateTime.Now, Duration = 120, AverageHeartRate = 0, HeartRate = null, TotalCalories = 500, Notes = null, Path = new List<PathModel> { new PathModel { Timestamp = 0, Latitude = 100.0, Longitude = 100.0, Altitude = 100.0, Type = FitnessActivitiesEndpoint.ValidPathType.First() }, new PathModel { Timestamp = 60, Latitude = 120.0, Longitude = 120.0, Altitude = 50.0, Type = FitnessActivitiesEndpoint.ValidPathType.First() } } }; ValidActivityNew = new FitnessActivitiesNewModel { Type = FitnessActivitiesEndpoint.ValidType.First(), SecondaryType = string.Empty, Equipment = FitnessActivitiesEndpoint.ValidEquipment.First(), StartTime = DateTime.Now, Duration = 120, AverageHeartRate = 0, HeartRate = null, TotalCalories = 500, Notes = null, Path = new List<PathModel> { new PathModel { Timestamp = 0, Latitude = 100.0, Longitude = 100.0, Altitude = 100.0, Type = FitnessActivitiesEndpoint.ValidPathType.First() }, new PathModel { Timestamp = 60, Latitude = 120.0, Longitude = 120.0, Altitude = 50.0, Type = FitnessActivitiesEndpoint.ValidPathType.First() } }, PostToFacebook = null, PostToTwitter = null, DetectPauses = null }; }
public string CreateActivity(FitnessActivitiesNewModel activityToCreate) { var request = PrepareActivitiesCreateRequest(activityToCreate); return _tokenManager.ExecuteCreate(request); }
public void CreateActivityAsync(Action<string> success, Action<HealthGraphException> failure, FitnessActivitiesNewModel activityToCreate) { var request = PrepareActivitiesCreateRequest(activityToCreate); _tokenManager.ExecuteCreateAsync(request, success, failure); }
/// <summary> /// Prepares the request object to create a new model. /// </summary> /// <param name="activityToCreate"></param> /// <returns></returns> private IRestRequest PrepareActivitiesCreateRequest(FitnessActivitiesNewModel activityToCreate) { var request = new RestRequest(Method.POST); request.Resource = _user.FitnessActivities; ValidateModel(activityToCreate); //Add body to the request request.AddParameter(FitnessActivitiesNewModel.ContentType, _tokenManager.DefaultJsonSerializer.Serialize(new { type = activityToCreate.Type, secondary_type = activityToCreate.SecondaryType, equipment = activityToCreate.Equipment, start_time = activityToCreate.StartTime, total_distance = activityToCreate.TotalDistance, duration = activityToCreate.Duration, average_heart_rate = activityToCreate.AverageHeartRate, heart_rate = activityToCreate.HeartRate, total_calories = activityToCreate.TotalCalories, notes = activityToCreate.Notes, path = ((activityToCreate.Path != null) && (activityToCreate.Path.Count == 0)) ? null : activityToCreate.Path, post_to_facebook = activityToCreate.PostToFacebook, post_to_twitter = activityToCreate.PostToTwitter, detect_pauses = activityToCreate.DetectPauses }), ParameterType.RequestBody); return request; }