public async Task <ActionResult <ApiResultViewModel <AchievementTypeViewModel> > > GetAchievementTypeByIdAsync(
            [FromRoute] string id, CancellationToken cancellationToken)
        {
            var result = await _achievementTypeManager.GetByIdAsyncThrowNotFoundIfNotExists(id, cancellationToken);

            return(OkData(AchievementTypeViewModel.Map(result)));
        }
        public async Task <ActionResult <ApiResultViewModel <AchievementTypeViewModel> > > UpdateAchievementTypeByIdAsync(
            [FromRoute] string id, [FromBody] AchievementTypeInputModel input, CancellationToken cancellationToken)
        {
            var achievementType = await _achievementTypeManager.GetByIdAsyncThrowNotFoundIfNotExists(id, cancellationToken);

            achievementType.CategoryId = input.CategoryId?.ToLong();
            achievementType.CorrectAnswersCountInCategory = input.CorrectAnswersCountInCategory;
            achievementType.WinnedBattlesCount            = input.WinnedBattlesCount;
            achievementType.AceWinCount = input.AceWinCount;
            achievementType.NumberOfContinuousDaysPlaying          = input.NumberOfContinuousDaysPlaying;
            achievementType.GiftedCoinsAmount                      = input.GiftedCoinsAmount;
            achievementType.NumberOfTotalBattlesPlayed             = input.NumberOfTotalBattlesPlayed;
            achievementType.NumberOfRegisteredFriendsViaInviteLink = input.NumberOfRegisteredFriendsViaInviteLink;
            achievementType.NumberOfSuccessfulBattleInvitations    = input.NumberOfSuccessfulBattleInvitations;
            achievementType.RemoveTwoAnswersHelperUsageCount       = input.RemoveTwoAnswersHelperUsageCount;
            achievementType.AnswerHistoryHelperUsageCount          = input.AnswerHistoryHelperUsageCount;
            achievementType.AskMergenHelperUsageCount              = input.AskMergenHelperUsageCount;
            achievementType.DoubleChanceHelperUsageCount           = input.DoubleChanceHelperUsageCount;
            achievementType.CoinsSpentOnAvatarItems                = input.CoinsSpentOnAvatarItems;
            achievementType.CoinsSpentOnBooster                    = input.CoinsSpentOnBooster;
            achievementType = await _achievementTypeManager.SaveAsync(achievementType, cancellationToken);

            achievementType = await _achievementTypeManager.SaveAsync(achievementType, cancellationToken);

            return(OkData(AchievementTypeViewModel.Map(achievementType)));
        }
        GetAchievementTypesAsync(QueryInputModel <AchievementTypeFilterInputModel> filter,
                                 CancellationToken cancellationToken)
        {
            var result = await _achievementTypeManager.GetAllAsync(filter, cancellationToken);

            return(OkData(AchievementTypeViewModel.MapAll(result.Data), result.TotalCount));
        }