private static void Main()
        {
            EventSeat eventArea = new EventSeat(2, 2, 2, 1);

            var eventAreaRepo = new EventSeatRepository();

            // var eventAreaCreate = eventAreaRepo.CreateAsync(eventArea);

            // var eventAreaDelete = eventAreaRepo.DeleteRangeAsync(new[] { 11 });

            var eventAreaResponse = eventAreaRepo.GetAllAsync().Result;

            foreach (var item in eventAreaResponse)
            {
                Console.WriteLine("get item:");
                Console.WriteLine("\tID" + $"\t{item.State}" + "\tRow:" + $"\t{item.Row}" + "\tNumber:" + $"\t{item.Number}");
            }

            // TicketManagementService ticketManagementService = new TicketManagementService();

            // TicketManagementServiceResponse ticketManagementServiceResponce = ticketManagementService.ImplemntAnonymousService();

            // var avaliableSeats = ticketManagementServiceResponce.AvaliableSeats;

            // foreach (var item in avaliableSeats)
            // {
            //   Console.WriteLine("GET SEAT");
            //   Console.WriteLine("\tID" + $"\t{item.Id}" + "\tRow:" + $"\t{item.Row}" + "\tNumber:" + $"\t{item.Number}" + "\tAreaId:" + $"\t{item.AreaId}");
            // }

            Console.Read();
        }
Exemplo n.º 2
0
 private static void ReservedSeatCleaner(EventSeat eventSeat, string userId)
 {
     if (eventSeat.State == SeatStatus.Reserved)
     {
         eventSeat.State = eventSeat.UserId == userId ? SeatStatus.Reserved : SeatStatus.Bought;
     }
 }
Exemplo n.º 3
0
        public async Task <ActionResult <EventSeat> > PostEventSeat(EventSeat eventSeat)
        {
            _context.EventSeat.Add(eventSeat);
            await _context.SaveChangesAsync();

            return(CreatedAtAction("GetEventSeat", new { id = eventSeat.EventSeatId }, eventSeat));
        }
Exemplo n.º 4
0
        public async Task <IActionResult> PutEventSeat(int id, EventSeat eventSeat)
        {
            if (id != eventSeat.EventSeatId)
            {
                return(BadRequest());
            }

            _context.Entry(eventSeat).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!EventSeatExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
Exemplo n.º 5
0
        public async Task <IActionResult> AddSeats(int eventId, List <int> seatIds)
        {
            var @event = await _context.Events
                         .SingleOrDefaultAsync(m => m.EventId == eventId);

            if (@event == null)
            {
                return(NotFound());
            }

            var @seats =
                from seat in _context.Seats
                where seatIds.Contains(seat.SeatID)
                select seat;

            foreach (Seat seat in @seats)
            {
                EventSeat es = new EventSeat {
                    EventID = @event.EventId, SeatID = seat.SeatID
                };
                _context.Add(es);
            }
            await _context.SaveChangesAsync();

            return(RedirectToAction(nameof(Details)));
        }
Exemplo n.º 6
0
 public void Create(EventSeat obj)
 {
     using (MyDbContext db = new MyDbContext())
     {
         db.EventSeat.Add(obj);
         db.SaveChanges();
     }
 }
Exemplo n.º 7
0
 public static EventSeatDto ToEventSeatDto(EventSeat from)
 {
     return(new EventSeatDto
     {
         State = (BusinessLogic.Services.SeatState)SeatStateEnumParser.ToSeatStateBLL(from.State),
         Row = from.Row,
         Number = from.Number,
         Id = from.Id,
         EventAreaId = from.EventAreaId
     });
 }
Exemplo n.º 8
0
 private EventSeatDto MapToEventSeatDto(EventSeat from)
 {
     return(new EventSeatDto
     {
         State = (SeatState)from.State,
         EventAreaId = from.EventAreaId,
         Id = from.Id,
         Number = from.Number,
         Row = from.Row
     });
 }
Exemplo n.º 9
0
 private EventSeatDTO EventSeatToEventSeatDTO(EventSeat item)
 {
     return(new EventSeatDTO
     {
         Id = item.Id,
         EventAreaId = item.EventAreaId,
         Row = item.Row,
         Number = item.Number,
         State = item.State
     });
 }
Exemplo n.º 10
0
 public bool Update(EventSeat elem)
 {
     for (int i = 0; i < RepoList.Count; i++)
     {
         if (RepoList[i].Id == elem.Id)
         {
             RepoList[i] = elem as EventSeat;
             return(true);
         }
     }
     return(false);
 }
 public void CreateEventSeat(EventSeat item)
 {
     if (eventSeatInMemoryStorage.Keys.Count == 0)
     {
         item.Id = 1;
     }
     else
     {
         item.Id = eventSeatInMemoryStorage.Keys.Max() + 1;
     }
     eventSeatInMemoryStorage.Add(item.Id, item);
 }
        public void UpdateEventSeat(EventSeat item)
        {
            SqlCommand cmd = new SqlCommand();

            cmd.Connection = ConnectionDB.getInstance().SqlConnections;
            cmd.Parameters.AddWithValue("@id", item.Id);
            cmd.Parameters.AddWithValue("@eventAreaId", item.EventAreaId);
            cmd.Parameters.AddWithValue("@row", item.Row);
            cmd.Parameters.AddWithValue("@number", item.Number);
            cmd.Parameters.AddWithValue("@state", item.State);
            cmd.CommandText = "update eventSeat set eventAreaId=@eventAreaId,row=@row,number=@number,state=@state where id =@id";
            cmd.ExecuteNonQuery();
        }
Exemplo n.º 13
0
        public void Update(EventSeat obj)
        {
            using (MyDbContext db = new MyDbContext())
            {
                var s = db.EventSeat.Find(obj.Id);

                s.EventAreaId = obj.EventAreaId;
                s.Row         = obj.Row;
                s.Number      = obj.Number;
                s.State       = obj.State;

                db.SaveChanges();
            }
        }
Exemplo n.º 14
0
        public EventSeat Get(int id)
        {
            EventSeat r = new EventSeat();

            foreach (var v in RepoList)
            {
                if (v.Id == id)
                {
                    r = v;
                    break;
                }
            }

            return(r);
        }
        public void CreateEventSeat(EventSeat item)
        {
            SqlCommand cmd = new SqlCommand();

            cmd.Connection = ConnectionDB.getInstance().SqlConnections;
            cmd.Parameters.AddWithValue("@eventAreaId", item.EventAreaId);
            cmd.Parameters.AddWithValue("@row", item.Row);
            cmd.Parameters.AddWithValue("@number", item.Number);
            cmd.Parameters.AddWithValue("@state", item.State);
            cmd.CommandText = "Insert into eventSeat(eventAreaId,row,number,state) output inserted.id values(@eventId,@row,@number,@state)";
            using (SqlDataReader reader = cmd.ExecuteReader())
            {
                if (reader.Read())
                {
                    item.Id = (int)reader[0];
                }
            }
        }
Exemplo n.º 16
0
        public EventSeatQueryDetailViewModel GetEventSeat(EventSeat theSeat)
        {
            var eventSeat = _context.EventSeat.Where(es => es.EventSeatId == theSeat.EventSeatId)
                            .Select(es => new EventSeatQueryDetailViewModel {
                EventId        = es.Event.EventId,
                EventName      = es.Event.EventName,
                EventDateTime  = es.Event.EventDateTime,
                VenueId        = es.Seat.Row.Section.Venue.VenueId,
                VenueName      = es.Seat.Row.Section.Venue.VenueName,
                EventSeatId    = es.EventSeatId,
                SeatName       = es.Seat.SeatName,
                RowName        = es.Seat.Row.RowName,
                SectionName    = es.Seat.Row.Section.SectionName,
                EventSeatPrice = (es.EventSeatPrice + es.Seat.Price),
                Available      = es.TicketPurchase.TicketPurchaseId == null ? true : false
            }).FirstOrDefault();

            return(eventSeat);
        }
Exemplo n.º 17
0
        public bool TryGet(int eventSeatId, out EventSeatResponse response)
        {
            EventSeat target = _context.EventSeat.SingleOrDefault(es => es.EventSeatId == eventSeatId);

            if (target != null)
            {
                bool isPurchased = _context.TicketPurchaseSeat.ToList().Any(tps => tps.EventSeatId == eventSeatId);
                response = new EventSeatResponse
                {
                    EventSeatId    = target.EventSeatId,
                    SeatId         = target.SeatId,
                    EventId        = target.EventId,
                    EventSeatPrice = target.EventSeatPrice,
                    IsAvailable    = !isPurchased
                };
                return(true);
            }

            // event seat not found
            response = null;
            return(false);
        }
        public bool CreateTicketPurchase(TicketPurchaseJSON ticketPurchase)
        {
            bool isSuccessful = false;

            try {
                TicketPurchase purchase = new TicketPurchase {
                    PaymentMethod    = ticketPurchase.PaymentMethod,
                    PaymentAmount    = ticketPurchase.PaymentAmount,
                    ConfirmationCode = ticketPurchase.ConfirmationCode
                };

                _context.TicketPurchase.Add(purchase);

                foreach (int eventSeatId in ticketPurchase.EventSeatsPurchased)
                {
                    EventSeat seat = _context.EventSeat
                                     .Where(es => es.EventSeatId == eventSeatId)
                                     .FirstOrDefault();

                    if (seat != null && seat.TicketPurchase == null)
                    {
                        seat.TicketPurchase = purchase;
                    }
                    else
                    {
                        _context.TicketPurchase.Remove(purchase);
                        _context.SaveChanges();
                        throw new System.ArgumentException("Seat ID Invalid");
                    }
                }

                _context.SaveChanges();
                isSuccessful = true;
            } catch (Exception e) {
            }


            return(isSuccessful);
        }
Exemplo n.º 19
0
        public async Task <IActionResult> Create([Bind("EventId,Name,Date,IsLocked")] Event @event)
        {
            if (ModelState.IsValid)
            {
                _context.Add(@event);

                if (!_context.EventSeats.Where(es => es.EventID == @event.EventId).Any())
                {
                    foreach (Seat seat in _context.Seats)
                    {
                        EventSeat es = new EventSeat {
                            EventID = @event.EventId, SeatID = seat.SeatID
                        };
                        _context.Add(es);
                    }
                }

                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            return(View(@event));
        }
        public EventSeat GetEventSeatById(int id)
        {
            SqlCommand cmd = new SqlCommand();

            cmd.Connection = ConnectionDB.getInstance().SqlConnections;
            cmd.Parameters.AddWithValue("@id", id);
            cmd.CommandText = "select eventAreaId,row,number,state from eventArea where id = @id";
            EventSeat ev = null;

            using (SqlDataReader reader = cmd.ExecuteReader())
            {
                if (reader.Read())
                {
                    ev             = new EventSeat();
                    ev.Id          = id;
                    ev.EventAreaId = (int)reader[0];
                    ev.Row         = (int)reader[1];
                    ev.Number      = (int)reader[2];
                    ev.State       = (string)reader[3];
                }
            }

            return(ev);
        }
 public void UpdateEventSeat(EventSeat item)
 {
     eventSeatInMemoryStorage[item.Id] = item;
 }
Exemplo n.º 22
0
        public static void Initialize(ssdticketsContext context)
        {
            context.Database.EnsureCreated();

            if (context.Venue.Any())
            {
                // DB has already been seeded
                return;
            }

            // Initialization constants
            const string VENUE_NAME = "BCIT Stadium";

            const int NUM_SECTIONS     = 10;
            const int ROWS_PER_SECTION = 10;
            const int SEATS_PER_ROW    = 10;
            const int CAPACITY         = NUM_SECTIONS * ROWS_PER_SECTION * SEATS_PER_ROW;

            const decimal VENUE_SEAT_PRICE = 12.50m;

            // Venue
            Venue bcit = new Venue {
                Capacity = CAPACITY, VenueName = VENUE_NAME
            };

            context.Venue.Add(bcit);
            context.SaveChanges();

            // Sections
            List <Section> sections = new List <Section>();

            for (int i = 0; i < NUM_SECTIONS; i++)
            {
                var section = new Section
                {
                    VenueName   = bcit.VenueName,
                    SectionName = $"Section {i + 1}"
                };

                sections.Add(section);
                context.Section.Add(section);
            }
            context.SaveChanges();

            // Rows
            List <Row> rows = new List <Row>();

            foreach (Section s in sections)
            {
                for (int i = 0; i < ROWS_PER_SECTION; i++)
                {
                    var row = new Row {
                        Section = s, RowName = $"Row {i + 1}"
                    };
                    rows.Add(row);
                    context.Row.Add(row);
                }
                context.SaveChanges();
            }

            // Seats
            List <Seat> seats = new List <Seat>();

            foreach (Row r in rows)
            {
                for (int i = 0; i < SEATS_PER_ROW; i++)
                {
                    var seat = new Seat {
                        Row = r, Price = VENUE_SEAT_PRICE
                    };
                    seats.Add(seat);
                    context.Seat.Add(seat);
                }
                context.SaveChanges();
            }

            // Events
            var events = new Event[] {
                new Event {
                    EventName = "Conference", VenueName = VENUE_NAME
                },
                new Event {
                    EventName = "Barbecue", VenueName = VENUE_NAME
                },
                new Event {
                    EventName = "Hackathon", VenueName = VENUE_NAME
                },
                new Event {
                    EventName = "Convention", VenueName = VENUE_NAME
                },
                new Event {
                    EventName = "Soccer Championships", VenueName = VENUE_NAME
                }
            };

            foreach (Event e in events)
            {
                context.Event.Add(e);
            }
            context.SaveChanges();

            // Event Seats
            // Prices for events are 10.50, plus an extra $5 for each row closer to the front
            //   (eg. if there are 10 rows, the 10th row will have no extra cost, and the 1st row will be an extra $45)
            foreach (Event e in events)
            {
                decimal eventPrice = 10.50m;

                foreach (Seat venueSeat in seats)
                {
                    var eventSeat = new EventSeat {
                        Seat           = venueSeat,
                        Event          = e,
                        EventSeatPrice = eventPrice + (5 * (ROWS_PER_SECTION - getRowNumber(venueSeat.Row)))
                    };
                    context.EventSeat.Add(eventSeat);
                }
                context.SaveChanges();
            }

            // Ticket Purchases
            // Each event has the first row of section 1 sold out
            // Each event also has seats 1 and 2 sold in the second row of section 1
            foreach (Event e in events)
            {
                // Purchase first row in a single transaction
                IEnumerable <EventSeat> firstRow = e.EventSeat.Where(es => getRowNumber(es.Seat.Row) == 1 && es.Seat.Row.SectionId == 1);
                var firstRowPurchase             = new TicketPurchase {
                    PaymentMethod = "Credit Card", ConfirmationCode = "123456"
                };
                decimal totalPurchaseCost = 0;

                var tickets = new List <TicketPurchaseSeat>();
                foreach (EventSeat es in firstRow)
                {
                    var seatPurchase = new TicketPurchaseSeat {
                        EventSeat    = es,
                        Purchase     = firstRowPurchase,
                        SeatSubtotal = es.EventSeatPrice + es.Seat.Price
                    };
                    tickets.Add(seatPurchase);
                    totalPurchaseCost += (decimal)seatPurchase.SeatSubtotal;
                }

                firstRowPurchase.PaymentAmount = totalPurchaseCost;
                context.TicketPurchase.Add(firstRowPurchase);
                context.SaveChanges();

                foreach (TicketPurchaseSeat ticket in tickets)
                {
                    context.TicketPurchaseSeat.Add(ticket);
                }
                context.SaveChanges();

                // Purchase seats 1 and 2 of second row
                IEnumerable <EventSeat> secondRowSeats = e.EventSeat.Where(
                    es => getRowNumber(es.Seat.Row) == 2 && es.Seat.Row.SectionId == 1 && (es.SeatId % SEATS_PER_ROW == 1 || es.SeatId % SEATS_PER_ROW == 2));
                var secondRowPurchase = new TicketPurchase {
                    PaymentMethod = "Debit", ConfirmationCode = "789123"
                };
                totalPurchaseCost = 0;

                tickets = new List <TicketPurchaseSeat>();
                foreach (EventSeat es in secondRowSeats)
                {
                    var seatPurchase = new TicketPurchaseSeat
                    {
                        EventSeat    = es,
                        Purchase     = secondRowPurchase,
                        SeatSubtotal = es.EventSeatPrice + es.Seat.Price
                    };
                    tickets.Add(seatPurchase);
                    totalPurchaseCost += (decimal)seatPurchase.SeatSubtotal;
                }

                secondRowPurchase.PaymentAmount = totalPurchaseCost;
                context.TicketPurchase.Add(secondRowPurchase);
                context.SaveChanges();

                foreach (TicketPurchaseSeat ticket in tickets)
                {
                    context.TicketPurchaseSeat.Add(ticket);
                }
                context.SaveChanges();
            }
        }
Exemplo n.º 23
0
        public static void Initialize(ApplicationDbContext context)
        {
            Event @event;

            if (!context.Events.Any())
            {
                @event = new Event {
                    Name = "Summer Concert 2017", Date = new DateTime(2017, 7, 1)
                };
                context.Add(@event);
                context.SaveChanges();
            }
            else
            {
                @event = context.Events.First();
            }

            List <Seat> @seats;

            if (!context.Seats.Any())
            {
                @seats = new List <Seat>();

                // Middle Section
                int[]    @seatCounts = new int[] { 10, 11, 10, 11, 11, 12, 11, 12, 12, 13, 12, 13, 12, 13, 14, 13, 14 };
                string[] @rows       = new string[] { "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q" };
                for (int i = 0; i < @rows.Length; i++)
                {
                    for (int j = 1; j <= @seatCounts[i]; j++)
                    {
                        Seat @seat = new Seat {
                            Section = "Middle", Row = @rows[i], Number = j.ToString()
                        };
                        context.Add(@seat);
                        @seats.Add(@seat);
                    }
                }

                // Side Sections
                int[]    @seatCountsSides = new int[] { 5, 6, 8, 9, 10, 10, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12 };
                string[] @rowsSides       = new string[] { "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P" };
                string[] @sides           = new string[] { "Left", "Right" };
                foreach (string @side in @sides)
                {
                    for (int i = 0; i < @rowsSides.Length; i++)
                    {
                        for (int j = 1; j <= @seatCountsSides[i]; j++)
                        {
                            Seat @seat = new Seat {
                                Section = @side, Row = @rowsSides[i], Number = j.ToString()
                            };
                            context.Add(@seat);
                            @seats.Add(@seat);
                        }
                    }
                }

                context.SaveChanges();
            }
            else
            {
                @seats = context.Seats.ToList();
            }

            if (!context.EventSeats.Where(es => es.EventID == @event.EventId).Any())
            {
                foreach (Seat seat in @seats)
                {
                    EventSeat es = new EventSeat {
                        EventID = @event.EventId, SeatID = seat.SeatID
                    };
                    context.Add(es);
                }

                context.SaveChanges();
            }


            if (!context.Sponsors.Any())
            {
                context.Sponsors.Add(new Sponsor {
                    Name = "UNSPONSORED"
                });
                context.SaveChanges();
            }
        }
Exemplo n.º 24
0
 public IEnumerable <EventSeat> GetAll()
 {
     return(EventSeat.FromEntityList(_service.GetAll()));
 }
Exemplo n.º 25
0
 public EventSeat Get(int id)
 {
     return(EventSeat.FromEntity(_service.Get(id)));
 }
Exemplo n.º 26
0
 public IEnumerable <EventSeat> GetForEventArea(int eventAreaId)
 {
     return(EventSeat.FromEntityList(_service.GetForEventArea(eventAreaId)));
 }
Exemplo n.º 27
0
 public int Save(EventSeat elem)
 {
     RepoList.Add(elem as EventSeat);
     return(elem.Id);
 }