コード例 #1
0
        // 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));
        }
コード例 #2
0
        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));
        }