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))); }
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))); }