// GET : Event Create page public IActionResult CreateEvent(string venueCode, string eventType, DateTime date, decimal cost) { if (venueCode == null || eventType == null) { return(NotFound()); } var @event = new VenueCreateModel { VenueCode = venueCode, TypeId = eventType, Date = date.ToString("dd/MM/yyyy"), VenueCost = cost }; return(View(@event)); }
public async Task <IActionResult> CreateEvent([Bind("Id,Title,TypeId,Date,Duration,VenueCode,VenueCost")] VenueCreateModel @event) { if (ModelState.IsValid) { //PostReservation HttpClient client = getClient("23652"); ReservationPostApi req = new ReservationPostApi { EventDate = DateTime.Parse(@event.Date), VenueCode = @event.VenueCode, StaffId = 0 //Null for now, later if can, add this }; HttpResponseMessage response = await client.PostAsJsonAsync("api/Reservations", req); if (response.IsSuccessStatusCode) { var Reservation = await response.Content.ReadAsAsync <ReservationGetApi>(); var newEvent = new Event { Id = @event.Id, Title = @event.Title, Date = DateTime.Parse(@event.Date), Duration = @event.Duration, TypeId = @event.TypeId, VenueCode = @event.VenueCode, VenueReference = Reservation.Reference, VenueCost = @event.VenueCost }; try { _eventsContext.Add(newEvent); await _eventsContext.SaveChangesAsync(); return(RedirectToAction("EventIndex", "Event")); } catch (OverflowException) { await deleteReservationPostAsync(client, newEvent); TempData["msg"] = $"Please type '{@event.Duration}:XX' instead of just '{@event.Duration}' alone"; } catch (DbUpdateException) { await deleteReservationPostAsync(client, newEvent); TempData["msg"] = "There is an error while creating, please ensure your textfield are in correct format:"; TempData["msgDuration"] = $"Please ensure '{@event.Duration}' in HH:mm format instead of just '{@event.Duration}'"; } catch (Exception ex) { await deleteReservationPostAsync(client, newEvent); TempData["msg"] = ex.Message; } } } return(View(@event)); }