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);
        }
Exemple #3
0
        public async Task <ExtendedUserDto> GetExtendedById(int id)
        {
            var userEx =
                await _repository.User.GetSelectedFieldsById(id,
                                                             ExtendedUserDto.Selector());

            return(userEx);
        }
Exemple #4
0
        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());
        }