/// <summary>
 /// update the local database based on other clients
 /// </summary>
 /// <param name="seatDetails"></param>
 private void MakeBooking(SeatDetails seatDetails)
 {
     try
     {
         _ticketBookingDataAccessService.AddBooking(seatDetails);
     }
     catch (Exception ex)
     {
         Status    = ex.Message;
         IsWarning = true;
     }
 }
        public List <SeatDetails> GetSeatBookingDetails()
        {
            List <SeatDetails> seatDetailsList = new List <SeatDetails>();
            var Bookings = _context.Bookings.ToList();

            foreach
            (var details in Bookings)
            {
                SeatDetails details = new SeatDetails();
                details.BgColour = Constants.bookedSeatColour;
                details.
            }
        }
        public async Task AddBooking(SeatDetails seatDetails)
        {
            var ticketDetails = _context.Tickets.Where(x => x.TicketNo == seatDetails.TicketDetails.TicketNo).FirstOrDefault();

            if (ticketDetails.Booking_BookingId != 0)
            {
                Booking bookingDetails = new Booking();
                bookingDetails.BookingDate = DateTime.Now;

                bookingDetails.BookingId = _context.Bookings.Count() == 0 ? 1 : _context.Bookings.Max(x => x.BookingId) + 1;

                _context.Bookings.Add(bookingDetails);

                ticketDetails.Booking_BookingId = bookingDetails.BookingId;
                await _context.SaveChangesAsync();
            }
        }
        public void DeleteBookedSeat(Int32 userId, SeatDetails seatDetails)
        {
            lock (_sycnRoot)
            {
                try
                {
                    IStagecraftOrganizingCallbackService callbackChannel =
                        OperationContext.Current.GetCallbackChannel <IStagecraftOrganizingCallbackService>();

                    if (!_callbackChannels.Contains(callbackChannel))
                    {
                        _callbackChannels.Add(callbackChannel);
                    }

                    for (Int32 i = _callbackChannels.Count - 1; i >= 0; i--)
                    {
                        if (((ICommunicationObject)_callbackChannels[i]).State != CommunicationState.Opened)
                        {
                            _callbackChannels.RemoveAt(i);
                            continue;
                        }

                        try
                        {
                            _callbackChannels[i].SendBookedSeatDetailsToDelete(userId, seatDetails);
                        }
                        catch (Exception ex)
                        {
                            _callbackChannels.RemoveAt(i);
                            CustomExpMsg customMsg = new CustomExpMsg("Service threw exception while communicating on Callback Channel: " + _callbackChannels[i].GetHashCode());
                            throw new FaultException <CustomExpMsg>(customMsg, new
                                                                    FaultReason(customMsg.ErrorMsg), new FaultCode("Sender"));
                        }
                    }
                }
                catch (ApplicationException ex)
                {
                    CustomExpMsg customMsg = new CustomExpMsg(ex.Message);
                    throw new FaultException <CustomExpMsg>(customMsg, new
                                                            FaultReason(customMsg.ErrorMsg), new FaultCode("Sender"));
                }
            }
        }
Beispiel #5
0
        public static SeatingPlan GetActiveMovieSeatingPlan(int ActiveMovieId)
        {
            SeatingPlan _SeatingPlan = new SeatingPlan();

            _SeatingPlan.Rows = new List <RowDetails>();

            //retrieve the list of rows
            DataTable dtVenueRows = Data.Movies.GetVenueRows(ActiveMovieId);

            DataTable dtReservedSeats = Data.Movies.GetReservedSeats(ActiveMovieId);

            for (int i = 0; i < dtVenueRows.Rows.Count; i++)
            {
                DataRow    drVenue = dtVenueRows.Rows[i];
                RowDetails _newRow = new RowDetails();
                _newRow.RowNumber = (int)drVenue["RowNumber"];
                _newRow.Seats     = new List <SeatDetails>();

                //for each row in the venue, we want to create all the SEATS in that row

                //first, we create a "SEAT" for every OFFSET seat (which are with status 0)
                for (int j = 1; j <= (int)drVenue["SeatsOffset"]; j++)
                {
                    SeatDetails seat = new SeatDetails();
                    seat.RowNumber        = (int)drVenue["RowNumber"];
                    seat.PositionId       = i;
                    seat.ActualSeatNumber = 0;
                    seat.Status           = 0;
                    _newRow.Seats.Add(seat);
                }

                //create a "SeatStatus" object for each seat.
                // if seat is already taken - update status to 2

                for (int j = 1; j <= (int)drVenue["SeatsInRow"]; j++)
                {
                    SeatDetails seat = new SeatDetails();
                    seat.RowNumber        = (int)drVenue["RowNumber"];
                    seat.PositionId       = j + (int)drVenue["SeatsOffset"];
                    seat.ActualSeatNumber = j;
                    seat.Status           = 0;

                    //check if seat is taken

                    if (IsReservedSeat(dtReservedSeats, seat.RowNumber, seat.ActualSeatNumber))
                    {
                        seat.Status = 2;
                    }
                    else
                    {
                        seat.Status = 1;
                    }

                    //add the new seat the SEATS list , in the ROW
                    _newRow.Seats.Add(seat);
                }
                //add the row to the Seating Plan
                _SeatingPlan.Rows.Add(_newRow);
            }
            return(_SeatingPlan);
        }
 public UserSeatDetailsEventArgs(Int32 userId, SeatDetails seatDetails)
 {
     this.seatDetails = seatDetails;
     this.userId      = userId;
 }
Beispiel #7
0
 public void SendBookedSeatDetailsToDelete(int userId, SeatDetails seatDetails)
 {
     _syncContext.Post(new SendOrPostCallback(OnServiceSendBookedSeatDetailsToDeleteCallbackEvent), new UserSeatDetailsEventArgs(userId, seatDetails));
 }
Beispiel #8
0
 public SeatDetailsEventArgs(SeatDetails seatDetails)
 {
     this.deletedSeatDetails = seatDetails;
 }
 public void DeleteBookedSeat(int userId, SeatDetails seatDetails)
 {
     Channel.DeleteBookedSeat(userId, seatDetails);
 }