public async Task<IHttpActionResult> GetTicketCutoffs(int id) { TicketCutoff ticketCutoff = await repository.RetrieveAsync(id); if (ticketCutoff == null) { return NotFound(); } TicketCutoffApiModel model = new TicketCutoffApiModel { TicketCutoffID = ticketCutoff.TicketCutoffID, EventID = ticketCutoff.EventID, Name = ticketCutoff.Name, OnSellDate = ticketCutoff.OnSellDate, CutoffDate = ticketCutoff.CutoffDate }; return Ok(model); }
private List<TicketCutoffApiModel> BuildCutoffsWithPrices(int eventID) { List<TicketCutoffApiModel> items = new List<TicketCutoffApiModel>(); //get sub info List<TicketCutoff> cutoffs = repository.Items.Where(x => x.EventID == eventID).OrderBy(x => x.OnSellDate).ToList(); ; List<EventAgeGroup> ages = agesRepository.Items.Where(x => x.EventID == eventID).OrderBy(x => x.MinimumAge).ToList(); List<TicketArea> areas = areasRepository.Items.Where(x => x.EventID == eventID).OrderBy(x => x.TicketAreaID).ToList(); foreach (TicketCutoff cutoff in cutoffs) { TicketCutoffApiModel item = new TicketCutoffApiModel { TicketCutoffID = cutoff.TicketCutoffID, EventID = cutoff.EventID, Name = cutoff.Name, OnSellDate = cutoff.OnSellDate, CutoffDate = cutoff.CutoffDate, TicketAreas = new List<TicketCutoffAreaApiModel>(), TicketPricesCount = cutoff.TicketPrices.Count }; //loop areas foreach (TicketArea area in areas) { TicketCutoffAreaApiModel itemArea = new TicketCutoffAreaApiModel() { TicketAreaID = area.TicketAreaID, Name = area.Name, TicketPrices = new List<TicketCutoffPriceModel>() }; //loops ages to create price model foreach (EventAgeGroup age in ages) { TicketCutoffPriceModel itemPrice = new TicketCutoffPriceModel { EventAgeGroupID = age.EventAgeGroupID, Name = age.Name, MinimumAge = age.MinimumAge, MaximumAge = age.MaximumAge, TicketCutoffID = cutoff.TicketCutoffID, TicketAreaID = area.TicketAreaID, BasePrice = null, TicketPriceID = null }; TicketPrice price = area.TicketPrices .Where(x => x.EventAgeGroupID == age.EventAgeGroupID && x.TicketCutoffID == cutoff.TicketCutoffID).SingleOrDefault(); if (price != null) { itemPrice.BasePrice = price.BasePrice; itemPrice.TicketPriceID = price.TicketPriceID; } itemArea.TicketPrices.Add(itemPrice); } item.TicketAreas.Add(itemArea); } items.Add(item); } return items; }