public async Task <IActionResult> Create([FromBody] EventCreationBindingModel bm) { var @event = await _eventRepo.FindByNameAndDate(bm.Name, bm.StartsAt); if (@event != null) { return(Conflict("An event exists with the same name and date.")); } var venueMap = await _venueRepo.FindAndMapById(bm.Venues.Select(x => x.VenueId)); var venues = new List <(int, Venue)>(); foreach (var venuePriority in bm.Venues) { if (venueMap.ContainsKey(venuePriority.VenueId)) { venues.Add((venuePriority.Priority, venueMap[venuePriority.VenueId])); } } @event = await _eventRepo.Create(bm.Name, bm.StartsAt, bm.DurationInMinutes, venues); return(Ok(Mapper.Map <EventViewModel>(@event))); }