public Task AddPurchasedTicketsAsync(PurchaseRequest request) { foreach (var ticket in request.DesiredTickets) { _db.Tickets.Add(ticket); } return _db.SaveChangesAsync(); }
public async Task MakeTicketRequest(Guid showId, int ticketCount) { var connectionString = ConfigurationManager.AppSettings["ehConnectionString"]; var eventHubName = ConfigurationManager.AppSettings["ehName"]; try { var eventHubClient = EventHubClient.CreateFromConnectionString(connectionString, eventHubName); var tix = new List<Ticket>(); for (var i = 0; i < ticketCount; i++) { tix.Add(new Ticket { Id = Guid.NewGuid(), ShowId = showId }); } var request = new PurchaseRequest { Id = Guid.NewGuid(), Timestamp = DateTimeOffset.UtcNow, DesiredTickets = tix.ToArray() }; var json = JsonConvert.SerializeObject(request); var data = new EventData(Encoding.UTF8.GetBytes(json)); data.PartitionKey = "NTM.UI"; data.Properties["correlationId"] = Context.ConnectionId; // preserve this so we can send a response later await eventHubClient.SendAsync(data); Clients.Caller.orderPlaced(new { id = request.Id, ticketcount = ticketCount }); } catch(Exception ex) { throw ex; } }