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

            Avatar avatar = _avatarRepository.GetByUser(user).GetAwaiter().GetResult();

            if (avatar != null)
            {
                IEnumerable <Skin> skins = _skinRepository.GetAll().GetAwaiter().GetResult();
                IEnumerable <GetAvailableSkinsDTOResponse> skinsDTOReponse = skins.Select(skin =>
                {
                    SkinInformations skinInformations = SkinHandlers.Handle(user, skin, _avatarRepository, _categoryRepository, _questTypeRepository, _questRepository).GetAwaiter().GetResult();
                    return(new GetAvailableSkinsDTOResponse(skin.Id, skin.Name, skin.LevelMin, skinInformations.Description, skinInformations.Unlocked));
                }).Where(skin =>
                         skin.Unlocked
                         );

                if (skinsDTOReponse != null)
                {
                    string skinsJson = JsonSerializer.Serialize(skinsDTOReponse);
                    context.Response.StatusCode = StatusCodes.Status200OK;
                    context.Response.WriteAsync(skinsJson).GetAwaiter().GetResult();
                    return;
                }
            }
            context.Response.StatusCode = StatusCodes.Status400BadRequest;
        }