public async Task ShowQuestDetail(QuestDetailAction questAction) { var result = await DoCommand(async() => { var playerId = _account.PlayerId; var command = new ShowQuestDetailCommand(playerId, questAction.QuestId); await _bus.SendCommand(command); }); }
public async Task <Unit> Handle(ShowQuestDetailCommand command, CancellationToken cancellationToken) { var playerId = command.PlayerId; var questId = command.QuestId; var player = await _playerDomainService.Get(playerId); if (player == null) { await _bus.RaiseEvent(new DomainNotification($"角色不存在!")); return(Unit.Value); } var quest = await _questDomainService.Get(questId); if (quest == null) { await _bus.RaiseEvent(new DomainNotification($"任务不存在!")); return(Unit.Value); } var playerQuest = await _playerQuestDomainService.Get(x => x.PlayerId == playerId && x.QuestId == quest.Id); if (playerQuest == null) { await _mudProvider.ShowMessage(playerId, "请先领取任务!"); return(Unit.Value); } var questDetail = _mapper.Map <QuestDetailModel>(quest); //questTargets = JsonConvert.DeserializeObject<List<QuestReward>>(quest.Reward); await _mudProvider.ShowQuest(playerId, questDetail); return(Unit.Value); }