public override async Task OnResultExecutionAsync(ResultExecutingContext context, ResultExecutionDelegate next) { var resultFromAction = context.Result as ObjectResult; if (resultFromAction?.Value == null || resultFromAction.StatusCode < 200 || resultFromAction.StatusCode >= 300) { await next(); return; } var extendedUserFromRepo = (ExtendedUser)resultFromAction.Value; ExtendedUserDto extendedUserDto = extendedUserFromRepo.ToDto(); context.HttpContext.Request.Headers.TryGetValue("Accept", out StringValues mediaType); if (MediaTypeHeaderValue.TryParse(mediaType, out MediaTypeHeaderValue parsedMediaType) && parsedMediaType.MediaType == "application/vnd.rekom.hateoas+json") { string fields = context.HttpContext.Request.Query["Fields"]; IEnumerable <LinkDto> links = CreateLinksForExtendedUsers(extendedUserDto.Id, fields, context); var extendedUserToReturn = extendedUserDto.ShapeData(fields) as IDictionary <string, object>; extendedUserToReturn.Add("links", links); resultFromAction.Value = extendedUserToReturn; } else { resultFromAction.Value = extendedUserDto; } await next(); }
public async Task <HttpResponseMessage> EditUserAsync(ExtendedUserDto extendedUserDto) { var serializedUser = JsonConvert.SerializeObject(extendedUserDto); var stringContent = new StringContent(serializedUser, Encoding.UTF8, "application/json"); var response = await RequestHelper.Client.PostAsync("api/User/EditUser", stringContent); return(response); }
public async Task <ExtendedUserDto> GetExtendedById(int id) { var userEx = await _repository.User.GetSelectedFieldsById(id, ExtendedUserDto.Selector()); return(userEx); }
public async Task <IActionResult> UpdateAdditional([FromBody] ExtendedUserDto user, [FromHeader(Name = "userId")] int userId) { await _userDataUpdateService.UpdateAdditionalDataById(userId, user.ReligionId, user.AlcoholAttitudeId, user.SmokingAttitudeId, user.MaritalStatusId ); return(Ok()); }