public async Task ShowShop() { var result = await DoCommand(async() => { var playerId = _account.PlayerId; var command = new ShowShopCommand(playerId); await _bus.SendCommand(command); }); }
public async Task <Unit> Handle(ShowShopCommand command, CancellationToken cancellationToken) { var playerId = command.PlayerId; var player = await _playerDomainService.Get(playerId); if (player == null) { await _bus.RaiseEvent(new DomainNotification($"角色不存在!")); return(Unit.Value); } List <StoreWareModel> storeWareModels = new List <StoreWareModel>(); var storeWares = (await _storeWareDomainService.GetAll()).ToList(); if (storeWares == null) { return(Unit.Value); } var ids = storeWares.Select(x => x.WareId).ToList(); var wares = (await _wareDomainService.GetAll()).Where(x => ids.Contains(x.Id)); foreach (var storeWare in storeWares) { var ware = wares.FirstOrDefault(x => x.Id == storeWare.WareId); if (ware != null) { var wareModel = _mapper.Map <StoreWareModel>(ware); wareModel.StoreWareId = storeWare.Id; wareModel.Number = storeWare.Number; wareModel.Price = storeWare.Price; wareModel.OriginalPrice = storeWare.OriginalPrice; wareModel.PriceType = storeWare.PriceType; wareModel.IsBind = storeWare.IsBind; wareModel.PriceDesc = storeWare.Price.ToMoney(); storeWareModels.Add(wareModel); } } await _mudProvider.ShowShop(playerId, storeWareModels); return(Unit.Value); }