Ejemplo n.º 1
0
        protected override void ExecuteRequest(HttpContext context)
        {
            (bool isOk, User user) = CheckClaimsForUser(Request, context, _userRepository);
            if (!isOk || user == null)
            {
                return;
            }

            Quest                 quest        = _questRepository.GetById(user, Request.QuestId).GetAwaiter().GetResult();
            QuestHandler          questHandler = QuestHandlers.Create(quest, user, _questTypeRepository);
            ClaimQuestDTOResponse claimQuestDTOResponse;
            string                serializedString;

            if (questHandler != null)
            {
                switch (questHandler.GetState())
                {
                case QuestState.InProgress:
                    context.Response.StatusCode = StatusCodes.Status400BadRequest;
                    claimQuestDTOResponse       = new ClaimQuestDTOResponse(QuestState.InProgress.ToString(), "0", "you cannot claim this quest, it's in progress");
                    break;

                case QuestState.Claimed:
                    context.Response.StatusCode = StatusCodes.Status400BadRequest;
                    claimQuestDTOResponse       = new ClaimQuestDTOResponse(QuestState.Claimed.ToString(), "0", "you cannot claim this quest, it was already claimed");
                    break;

                case QuestState.Failed:
                    context.Response.StatusCode = StatusCodes.Status400BadRequest;
                    claimQuestDTOResponse       = new ClaimQuestDTOResponse(QuestState.Failed.ToString(), "0", "you cannot claim this quest, it was already failed");
                    break;

                case QuestState.Finished:
                    context.Response.StatusCode = StatusCodes.Status200OK;
                    quest = _questRepository.SetIsClaimedById(user, quest.Id).GetAwaiter().GetResult();
                    _avatarRepository.AddXp(user, quest).GetAwaiter().GetResult();
                    claimQuestDTOResponse = new ClaimQuestDTOResponse(QuestState.Finished.ToString(), quest.XpValue.ToString(), "you have claimed this quest");
                    break;

                default:
                    throw new NotSupportedException();
                }
                serializedString = JsonSerializer.Serialize(claimQuestDTOResponse);
                dtoResponse      = claimQuestDTOResponse;
                context.Response.WriteAsync(serializedString).GetAwaiter().GetResult();
            }
        }
Ejemplo n.º 2
0
        protected override void ExecuteRequest(HttpContext context)
        {
            User user = _userRepository.GetUserByLoginOrEmail(Request.Login).GetAwaiter().GetResult();

            if (user == null)
            {
                return;
            }

            Avatar avatar = _avatarRepository.AddXp(user, Request.Score / 100).GetAwaiter().GetResult();

            if (avatar != null)
            {
                string avatarJson = JsonSerializer.Serialize(avatar);
                context.Response.StatusCode = StatusCodes.Status200OK;
                context.Response.WriteAsync(avatarJson).GetAwaiter().GetResult();
            }
            else
            {
                context.Response.StatusCode = StatusCodes.Status400BadRequest;
            }
        }