/// <see cref="IConcertService.GetConcert"/> public EventModel GetConcert(int id) { var res = ConcertModelHelper.GetConcertModel(_concertRepository.GetConcert(id)); //res.Tickets = new ConcertTicketModel { TimeStart = new TimeSpan(8, 15, 0), DateStart = new DateTime(2016, 9, 10)}; return(res); }
public async Task <Result <Purchase> > SellTickets(SellTicketsRequest request) { var possibleConcert = await _concertRepository.GetConcert(request.ConcertId); var result = await possibleConcert .ToResult(Errors.ConcertNotFound) .OnFailure(error => PublishPurchaseFailure(request, "Unknown")) .Bind(async concert => { var possibleBuyer = await _buyerRepository.GetBuyer(request.BuyerId); return(await possibleBuyer .ToResult(Errors.BuyerNotFound) .Bind(buyer => _ticketsService.SellTickets(concert, buyer, new TicketQuantity(request.Quantity))) .Tap(purchase => PublishPurchaseSuccess(purchase)) .OnFailure(error => PublishPurchaseFailure(request, concert.Name))); }); return(result); }