public async Task <Unit> Handle(UpdateBetCommand request, CancellationToken cancellationToken) { var bet = await _betRepository.GetByIdAsync(new BetId(request.BetId)) ?? throw new BetUnknownException($"This bet with Id {request.BetId} does not exist"); var dto = new BetDto(bet.State); await _betQueryRepository.SaveAsync(dto); return(Unit.Value); }
public async Task Handle(InsertBetQuerySideNotification request, CancellationToken cancellationToken) { ValidateRequest(request); var bet = await _betRepository.GetByIdAsync(new BetId(request.BetId)).ConfigureAwait(false) ?? throw new BetUnknownException($"BetId: {request.BetId} is unknwon"); var betDto = new BetDto(bet.State); await _queryBetRepository.SaveAsync(betDto); }
public async Task <ActionResult <Client.Models.Bet> > GetBet(Guid id) { var betItem = await repo.GetByIdAsync(id); if (betItem == null) { return(NotFound()); } return(mapper.Map <Client.Models.Bet>(betItem)); }
public async Task <Unit> Handle(UpdateWalletMembersCommand request, CancellationToken cancellationToken) { var bet = await _betRepository.GetByIdAsync(new BetId(request.BetId)) ?? throw new BetUnknownException($"This bet with id {request.BetId} is unknown"); bet.UpdateWallets(); var members = bet.GetAllMembers(); await _memberRepository.SaveAsync(members).ConfigureAwait(false); return(Unit.Value); }
public async Task Handle(InsertBetQuerySideNotification notification, CancellationToken cancellationToken) { var bet = await _betRepository.GetByIdAsync(new BetId(notification.BetId)) ?? throw new BetUnknownException($"Bet with Id {notification.BetId} does not exists"); var member = await _memberRepository.GetByIdAsync(new MemberId(notification.MemberId)); var feeds = await _feedRepository.GetByIdsAsync(member.Subscriptions.Select(x => x.MemberId.Value)); foreach (var feed in feeds) { feed.Bets.Add(new Models.BetDto(bet.State)); } await _feedRepository.SaveAsync(feeds); }
public async Task <Unit> Handle(CloseBetCommand request, CancellationToken cancellationToken) { if (!_authenticationGateway.IsAuthenticated()) { throw new NotAuthenticatedException(); } var bet = await GetBet(request).ConfigureAwait(false); bet.Close(new MemberId(_authenticationGateway.UserId), request.Success, _dateTimeProvider); await _betRepository.SaveAsync(bet); return(Unit.Value); async Task <Bet> GetBet(CloseBetCommand request) { return(await _betRepository.GetByIdAsync(new BetId(request.BetId)).ConfigureAwait(false) ?? throw new BetUnknownException($"This bet with id {request.BetId} is unknown")); } }
public async Task <Unit> Handle(AnswerBetCommand request, CancellationToken cancellationToken) { ValidateRequest(request); if (!_authentificationGateway.IsAuthenticated()) { throw new NotAuthenticatedException(); } var member = await _memberRepository.GetByIdAsync(new MemberId(_authentificationGateway.UserId)).ConfigureAwait(false) ?? throw new MemberUnknownException("Member unknown"); var bet = await _betRepository.GetByIdAsync(new BetId(request.BetId)).ConfigureAwait(false) ?? throw new BetUnknownException($"Bet {request.BetId} is unknown"); member.Answer(bet, request.IsAccepted, _dateTimeProvider.Now); await _betRepository.SaveAsync(bet).ConfigureAwait(false); return(Unit.Value); }