Exemplo n.º 1
0
            public void OnActionExecuting(ActionExecutingContext context)
            {
                var jwtUser = context.HttpContext.User;

                if (!jwtUser.HasClaim(c => c.Type == JwtRegisteredClaimNames.Email))
                {
                    InvalidateRequest(context, "Invalid token for request", _logger, 401);
                }
                UserUpdateDataHolder userHolder = context.ActionArguments["userHolder"] as UserUpdateDataHolder;

                if (null == userHolder)
                {
                    InvalidateRequest(context, "No user holder is present.", _logger, 422);
                }
                UserUpdateData user = userHolder.User;

                if (null == user)
                {
                    InvalidateRequest(context, "No user is present in the user holder.", _logger, 422);
                }
                if (!context.ModelState.IsValid)
                {
                    List <string> errors = context
                                           .ModelState
                                           .Values
                                           .SelectMany(e => e.Errors)
                                           .Select(e => e.ErrorMessage)
                                           .Distinct()
                                           .Cast <string>()
                                           .ToList();
                    InvalidateRequest(context, errors, _logger, 422);
                }
            }
Exemplo n.º 2
0
        public async Task <IActionResult> UpdateUser([FromBody] UserUpdateDataHolder userHolder)
        {
            try
            {
                var    jwtUser  = HttpContext.User;
                string username = jwtUser.Claims.FirstOrDefault(c => c.Type == JwtRegisteredClaimNames.Sub).Value;
                User   user     = await _userService.UpdateUser(username, userHolder.User);

                return(Ok(new UserHolder(user)));
            } catch (Exception ex)
            {
                return(HandleException(ex, _logger));
            }
        }