コード例 #1
0
        protected override void ExecuteRequest(HttpContext context)
        {
            (bool isOk, User user) = CheckClaimsForUser(Request, context, _userRepository);
            if (!isOk || user == null)
            {
                return;
            }

            Skin skin = _skinRepository.Get(Request.Id).GetAwaiter().GetResult().FirstOrDefault();

            if (skin != null)
            {
                Avatar avatar = _avatarRepository.GetByUser(user).GetAwaiter().GetResult();

                if (avatar != null && avatar.Level >= skin.LevelMin)
                {
                    avatar.SkinId = Request.Id;
                    avatar        = _avatarRepository.Update(avatar).GetAwaiter().GetResult();
                    if (avatar != null)
                    {
                        string avatarJson = JsonSerializer.Serialize(avatar);
                        context.Response.StatusCode = StatusCodes.Status200OK;
                        context.Response.WriteAsync(avatarJson).GetAwaiter().GetResult();
                        return;
                    }
                }
            }
            context.Response.StatusCode = StatusCodes.Status400BadRequest;
        }