public async Task <IHttpActionResult> UpdateScaleAnswerSet( int customerId, Guid scaleAnswerSetId, UpdateScaleAnswerSetRequestDto model ) { var status = await scaleAnswerSetHelper.Update(customerId, scaleAnswerSetId, model); if (status == UpdateScaleAnswerSetStatus.NotFound) { return(Content(HttpStatusCode.NotFound, new ErrorResponseDto() { Error = ErrorCode.InvalidRequest, Message = ErrorCode.InvalidRequest.Description(), Details = status.GetConcatString() } )); } if (!status.HasFlag(UpdateScaleAnswerSetStatus.Success)) { return(Content( HttpStatusCode.BadRequest, new ErrorResponseDto() { Error = ErrorCode.InvalidRequest, Message = ErrorCode.InvalidRequest.Description(), Details = status.GetConcatString() } )); } return(StatusCode(HttpStatusCode.NoContent)); }
private UpdateScaleAnswerSetStatus ValidateUpdateLabels(UpdateScaleAnswerSetRequestDto model) { UpdateScaleAnswerSetStatus status = 0; if (string.IsNullOrEmpty(model.Labels.HighLabel.Value)) { status |= UpdateScaleAnswerSetStatus.HighLabelIsRequired; } if (string.IsNullOrEmpty(model.Labels.LowLabel.Value)) { status |= UpdateScaleAnswerSetStatus.LowLabelIsRequired; } return(status); }
/// <summary> /// Updates the scale answer set. /// </summary> /// <param name="request">The request.</param> /// <param name="customerId">The customer identifier.</param> /// <param name="token">The token.</param> public async Task UpdateScaleAnswerSet(UpdateScaleAnswerSetRequestDto request, int customerId, string token) { var url = string.Format("api/{0}/answer-sets/scale/{1}", customerId, request.Id); await apiClient.SendRequestAsync(url, request, Method.PUT, null, token); }
/// <summary> /// Updates the specified identifier. /// </summary> /// <param name="customerId">The customer identifier.</param> /// <param name="scaleAnswerSetId">The scale answer set identifier.</param> /// <param name="model">The model.</param> /// <returns></returns> public async Task <UpdateScaleAnswerSetStatus> Update(int customerId, Guid scaleAnswerSetId, UpdateScaleAnswerSetRequestDto model) { var status = ValidateUpdateLabels(model); if (status > 0) { return(status); } var answerSet = Mapper.Map <ScaleAnswerSet>(model); answerSet.Id = scaleAnswerSetId; answerSet.CustomerId = customerId; answerSet.Tags = await tagsService.BuildTagsList(customerId, model.Tags); var lowLabel = Mapper.Map <LowLabelScaleAnswerSetString>(model.Labels.LowLabel); lowLabel.Language = careElementContext.DefaultLanguage; if (model.Labels.LowLabel.AudioFileMedia != null) { lowLabel.AudioFileMedia = await mediaFileHelper.CreateMediaFile(model.Labels.LowLabel.AudioFileMedia); } answerSet.LowLabelScaleAnswerSetStrings.Add(lowLabel); // Mid is optional if (model.Labels.MidLabel != null) { var midLabel = Mapper.Map <MidLabelScaleAnswerSetString>(model.Labels.MidLabel); midLabel.Language = careElementContext.DefaultLanguage; if (model.Labels.MidLabel.AudioFileMedia != null) { midLabel.AudioFileMedia = await mediaFileHelper.CreateMediaFile(model.Labels.MidLabel.AudioFileMedia); } answerSet.MidLabelScaleAnswerSetStrings.Add(midLabel); } var highLabel = Mapper.Map <HighLabelScaleAnswerSetString>(model.Labels.HighLabel); highLabel.Language = careElementContext.DefaultLanguage; if (model.Labels.HighLabel.AudioFileMedia != null) { highLabel.AudioFileMedia = await mediaFileHelper.CreateMediaFile(model.Labels.HighLabel.AudioFileMedia); } answerSet.HighLabelScaleAnswerSetStrings.Add(highLabel); status = await scaleAnswerSetService.Update(customerId, scaleAnswerSetId, answerSet); await globalSearchCacheHelper.AddOrUpdateEntry(customerId, Mapper.Map <ScaleAnswerSet, SearchEntryDto>(answerSet)); await tagsSearchCacheHelper.AddOrUpdateTags(customerId, answerSet.Tags.Select(t => t.Name).ToList()); var unusedTags = await tagsService.RemoveUnusedTags(customerId); await tagsSearchCacheHelper.RemoveTags(customerId, unusedTags); return(status); }
/// <summary> /// Updates the scale answer set. /// </summary> /// <param name="request">The request.</param> /// <param name="customerId">The customer identifier.</param> /// <param name="token">The token.</param> public async Task UpdateScaleAnswerSet(UpdateScaleAnswerSetRequestDto request, int customerId, string token) { await healthLibraryDataProvider.UpdateScaleAnswerSet(request, customerId, token); }