Exemplo n.º 1
0
        public async Task <IActionResult> Update(int id, [FromBody] SurveyDTO item)
        {
            if (item == null || item.Id != id)
            {
                return(HttpBadRequest());
            }
            if (!ModelState.IsValid)
            {
                return(HttpBadRequest(ModelState));
            }

            var survey = await _surveyStore.GetSurveyAsync(id);

            if (survey == null)
            {
                return(HttpNotFound());
            }

            // Validate that the current user has Update permissions to this survey.
            if (!await _authorizationService.AuthorizeAsync(User, survey, Operations.Update))
            {
                return(new HttpStatusCodeResult((int)HttpStatusCode.Forbidden));
            }

            // Apply update
            survey.Title     = item.Title;
            survey.Published = item.Published;

            await _surveyStore.UpdateSurveyAsync(survey);

            return(new ObjectResult(DataMapping._surveyToDto(survey)));
        }