コード例 #1
0
        public async Task <ActionResult <ApiResultViewModel <AchievementViewModel> > > Add([FromRoute] string accountId, [FromBody] AchievementInputModel inputModel,
                                                                                           CancellationToken cancellationToken)
        {
            var achievementTypeId   = inputModel.AchievementTypeId.ToLong();
            var existingAchievement = await _achievementManager.GetAsync(accountId.ToLong(),
                                                                         achievementTypeId,
                                                                         cancellationToken);

            if (existingAchievement != null)
            {
                return(BadRequest("duplicate_achievement", "Player already has this achievement."));
            }

            var achievement = new Achievement
            {
                AccountId         = accountId.ToLong(),
                AchievementTypeId = achievementTypeId,
                AchieveDateTime   = DateTime.UtcNow
            };

            achievement = await _achievementManager.SaveAsync(achievement, cancellationToken);

            return(OkData(AchievementViewModel.Map(achievement)));
        }
コード例 #2
0
        public async Task <ActionResult <ApiResultViewModel <IEnumerable <AchievementViewModel> > > > GetAll([FromQuery] QueryInputModel <AchievementsFilterInputModel> query, CancellationToken cancellationToken)
        {
            var data = await _achievementManager.GetAllAsync(query, cancellationToken);

            return(OkData(AchievementViewModel.MapAll(data.Data), new DataMetaViewModel(data.TotalCount)));
        }