diff --git a/dotNETStandard/HealthVaultProviderManagementPortal/HealthVaultProviderManagementPortal/Controllers/ActionPlanController.cs b/dotNETStandard/HealthVaultProviderManagementPortal/HealthVaultProviderManagementPortal/Controllers/ActionPlanController.cs index fe8e91d..42dbab6 100644 --- a/dotNETStandard/HealthVaultProviderManagementPortal/HealthVaultProviderManagementPortal/Controllers/ActionPlanController.cs +++ b/dotNETStandard/HealthVaultProviderManagementPortal/HealthVaultProviderManagementPortal/Controllers/ActionPlanController.cs @@ -218,13 +218,10 @@ namespace HealthVaultProviderManagementPortal.Controllers /// Get a task for a user. /// [HttpGet] - public ActionResult ValidateTracking(Guid id, Guid planId, Guid personId, Guid recordId) + public async Task ValidateTracking(Guid id, Guid planId, Guid personId, Guid recordId) { - return View("TrackingValidationEntry", new ActionPlanTaskInstance() - { - Id = id.ToString(), - AssociatedPlanId = planId.ToString() - }); + var response = await ExecuteMicrosoftHealthVaultRestApiAsync(api => api.ActionPlanTasks.GetByIdAsync(id.ToString()), personId, recordId); + return View("TrackingValidationEntry", response); } /// @@ -233,11 +230,16 @@ namespace HealthVaultProviderManagementPortal.Controllers [HttpPost] [ValidateInput(false)] [ValidateAntiForgeryToken] - public async Task ValidateTracking(Guid id, string thing, Guid personId, Guid recordId) + public async Task ValidateTracking(Guid id, string trackingPolicy, string thing, Guid personId, Guid recordId) { var restApi = await CreateMicrosoftHealthVaultRestApiAsync(personId, recordId); var taskInstance = await restApi.ActionPlanTasks.GetByIdAsync(id.ToString()); + if (!string.IsNullOrWhiteSpace(trackingPolicy)) + { + taskInstance.TrackingPolicy = trackingPolicy.AsActionPlanTrackingPolicy(); + } + var trackingValidation = new TrackingValidation { ActionPlanTask = taskInstance?.AsActionPlanTaskV2(), diff --git a/dotNETStandard/HealthVaultProviderManagementPortal/HealthVaultProviderManagementPortal/Helpers/TypeHelper.cs b/dotNETStandard/HealthVaultProviderManagementPortal/HealthVaultProviderManagementPortal/Helpers/TypeHelper.cs index 0726e91..44b0b00 100644 --- a/dotNETStandard/HealthVaultProviderManagementPortal/HealthVaultProviderManagementPortal/Helpers/TypeHelper.cs +++ b/dotNETStandard/HealthVaultProviderManagementPortal/HealthVaultProviderManagementPortal/Helpers/TypeHelper.cs @@ -17,5 +17,10 @@ namespace HealthVaultProviderManagementPortal.Helpers { return JsonConvert.DeserializeObject(JsonConvert.SerializeObject(instance)); } + + public static ActionPlanTrackingPolicy AsActionPlanTrackingPolicy(this string instance) + { + return JsonConvert.DeserializeObject(instance); + } } } \ No newline at end of file diff --git a/dotNETStandard/HealthVaultProviderManagementPortal/HealthVaultProviderManagementPortal/Views/ActionPlan/TrackingValidationEntry.cshtml b/dotNETStandard/HealthVaultProviderManagementPortal/HealthVaultProviderManagementPortal/Views/ActionPlan/TrackingValidationEntry.cshtml index 234e32c..0163846 100644 --- a/dotNETStandard/HealthVaultProviderManagementPortal/HealthVaultProviderManagementPortal/Views/ActionPlan/TrackingValidationEntry.cshtml +++ b/dotNETStandard/HealthVaultProviderManagementPortal/HealthVaultProviderManagementPortal/Views/ActionPlan/TrackingValidationEntry.cshtml @@ -7,7 +7,8 @@ THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. *@ -@model Microsoft.HealthVault.RestApi.Generated.Models.ActionPlanTaskInstance +@using Newtonsoft.Json +@model Microsoft.HealthVault.RestApi.Generated.Models.ActionPlanTaskInstanceV2 @{ ViewBag.Title = "Validate Task Auto Tracking"; @@ -28,10 +29,17 @@ @Html.EditorFor(model => model.Id, new { htmlAttributes = new { @class = "form-control", @readonly = true } }) + +
+
+ @Html.Label("Tracking policy override JSON (optional)", htmlAttributes: new { @class = "control-label" }) + @Html.TextArea("trackingPolicy", JsonConvert.SerializeObject(Model.TrackingPolicy, Formatting.Indented), htmlAttributes: new { @class = "form-control", rows = 15 }) +
+
- @Html.Label("HealthVault thing", htmlAttributes: new { @class = "control-label" }) + @Html.Label("HealthVault thing XML", htmlAttributes: new { @class = "control-label" }) @Html.TextArea("thing", htmlAttributes: new { @class = "form-control", rows = 25 })