Exemple #1
0
        private bool changeSeatsStatus(string notAvailable)
        {
            List <string> seats  = JsonConvert.DeserializeObject <List <string> >(notAvailable);
            bool          result = true;

            foreach (string identity in seats)
            {
                string[] seatData = identity.Split('_');
                int      cdata    = int.Parse(seatData[1]);
                string   rdata    = seatData[0];

                RoomSeat roomSeat = db.RoomSeats
                                    .Include(r => r.seat)
                                    .Where(r =>
                                           r.seat.column == cdata &&
                                           r.seat.row == rdata &&
                                           db.Tickets.Where(t =>
                                                            t.roomSeatID == r.roomSeatID &&
                                                            db.Functions.Where(f => f.functionID == t.functionID && f.time >= DateTime.UtcNow).Count() == 0
                                                            ).Count() == 0
                                           ).FirstOrDefault();

                if (roomSeat != null)
                {
                    roomSeat.status          = (roomSeat.status == 1) ? 2 : 1;
                    db.Entry(roomSeat).State = EntityState.Modified;
                    db.SaveChanges();
                }
                else
                {
                    result = false;
                }
            }
            return(result);
        }
Exemple #2
0
        public async Task <IHttpActionResult> PutRoomSeat(int id, RoomSeat roomSeat)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != roomSeat.roomSeatID)
            {
                return(BadRequest());
            }

            db.Entry(roomSeat).State = EntityState.Modified;

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

            return(StatusCode(HttpStatusCode.NoContent));
        }
        void UpdateSeatBindings(RoomSeat Seat)
        {
            SelectedItemsCount = Items.Sum(i => i.Seats.Count(s => s.IsSelected));
            Seat.Row.Refresh();

            RemoveBookingCommand.RaiseCanExecuteChanged();
            FreeBookingCommand.RaiseCanExecuteChanged();
            PaidBookingCommand.RaiseCanExecuteChanged();
        }
        void SeatItemMouseDown(object sender, MouseEventArgs e)
        {
            if (ViewModel != null && ViewModel.IsReservationsInfoReceived)
            {
                var el = (sender as FrameworkElement);
                if (el == null)
                {
                    return;
                }

                var item = (el.Tag as RoomSeat);
                if (item == null)
                {
                    return;
                }

                ClickedSeatPreviewText.Text = item.Text;

                var p1 = e.GetPosition(this);
                var p2 = e.GetPosition(el.Parent as IInputElement);

                var position = new Point(p1.X - p2.X, p1.Y - p2.Y);

                ClickedSeatPreview.Margin     = new Thickness(position.X - 5, position.Y - 170, 0, 0);
                ClickedSeatPreview.Visibility = Visibility.Visible;

                if (LastSelectedItem == item)
                {
                    return;
                }


                if (item.IsRemoteReserved)
                {
                    return;
                }


                // Feature: პირველ დაჭერილ ღილაკის სტეიტი ვრცელდება დანარჩენ ელემენტებზეც
                //          რომლებზეც გადავატარებთ. Idea by MS
                if (LastSelectedItem == null)
                {
                    LastSelectedItemIsSelected = item.IsSelected;
                }
                else
                {
                    item.IsSelected = LastSelectedItemIsSelected;
                }


                LastSelectedItem = item;

                ViewModel.SeatSelectCommand.Execute(item);
            }
        }
Exemple #5
0
        public IHttpActionResult PostTicket(Ticket ticket, string notAvailable = "")
        {
            List <Ticket>   tickets   = new List <Ticket>();
            List <string>   seats     = JsonConvert.DeserializeObject <List <string> >(notAvailable);
            List <RoomSeat> roomSeats = new List <RoomSeat>();

            foreach (string identity in seats)
            {
                string[] seatData = identity.Split('_');
                int      cdata    = int.Parse(seatData[1]);
                string   rdata    = seatData[0];

                RoomSeat roomSeat = db.RoomSeats
                                    .Include(r => r.seat)
                                    .Where(r =>
                                           r.seat.column == cdata &&
                                           r.seat.row == rdata
                                           ).FirstOrDefault();

                if (roomSeat != null)
                {
                    roomSeat.status          = (roomSeat.status == 1) ? 2 : 1;
                    db.Entry(roomSeat).State = EntityState.Modified;
                    db.SaveChanges();
                    roomSeats.Add(roomSeat);
                }
            }

            Debug.WriteLine("Tickets: " + JsonConvert.SerializeObject(ticket));

            foreach (RoomSeat roomseat in roomSeats)
            {
                tickets.Add(new Ticket()
                {
                    createAT   = DateTime.UtcNow,
                    functionID = ticket.functionID,
                    priceID    = ticket.priceID,
                    roomSeatID = roomseat.roomSeatID,
                    userID     = 1002
                });
            }

            Debug.WriteLine("Tickets: " + JsonConvert.SerializeObject(tickets));

            try
            {
                db.Tickets.AddRange(tickets);
                db.SaveChanges();
            }
            catch (Exception e)
            {
                Debug.WriteLine("ERROR: " + e.Message);
            }
            return(CreatedAtRoute("DefaultApi", new { id = tickets.FirstOrDefault().ticketID }, tickets.FirstOrDefault()));
        }
Exemple #6
0
        public async Task <IHttpActionResult> GetRoomSeat(int id)
        {
            RoomSeat roomSeat = await db.RoomSeats.FindAsync(id);

            if (roomSeat == null)
            {
                return(NotFound());
            }

            return(Ok(roomSeat));
        }
Exemple #7
0
        public async Task <IHttpActionResult> PostRoomSeat(RoomSeat roomSeat)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            db.RoomSeats.Add(roomSeat);
            await db.SaveChangesAsync();

            return(CreatedAtRoute("DefaultApi", new { id = roomSeat.roomSeatID }, roomSeat));
        }
Exemple #8
0
        public async Task <IHttpActionResult> DeleteRoomSeat(int id)
        {
            RoomSeat roomSeat = await db.RoomSeats.FindAsync(id);

            if (roomSeat == null)
            {
                return(NotFound());
            }

            db.RoomSeats.Remove(roomSeat);
            await db.SaveChangesAsync();

            return(Ok(roomSeat));
        }
        async void SeatSelect(RoomSeat seat)
        {
            try
            {
                if (seat.SeatID.HasValue && !seat.IsBooking && !seat.IsPaidBooking)
                {
                    seat.IsSelected = !seat.IsSelected;
                    UpdateSeatBindings(seat);

                    var schedule = new Schedule {
                        TheaterID = SessionItem.CinemaID, HallID = SessionItem.HallID, MovieID = SessionItem.MovieID, ID = SessionItem.ScheduleID, StartDate = SessionItem.StartDate
                    };
                    var seatStatuses = new List <SeatStatusChange>
                    {
                        new SeatStatusChange
                        {
                            SeatID     = seat.SeatID.Value,
                            IsReserved = seat.IsSelected,
                            SeatIndex  = seat.SeatIndex ?? 0,
                            RowIndex   = seat.Row.RowIndex
                        }
                    };

                    bool result;

                    if (seat.IsSelected)
                    {
                        result = await RealtimeService.Instance.ReserveSeats(OperatorStockID, CustomerID, schedule, seatStatuses, App.MachineID);
                    }
                    else
                    {
                        result = await RealtimeService.Instance.RemoveReservations(schedule, seatStatuses, App.MachineID);
                    }

                    if (!result)
                    {
                        seat.IsSelected = !seat.IsSelected;
                        UpdateSeatBindings(seat);
                    }
                }
            }
            catch (Exception e)
            {
                MessageBox.Show(e.Message);
            }
        }
Exemple #10
0
        private Room defineSeatArray(List <RoomSeat> roomSeats)
        {
            List <string> seatArray = new List <string>();
            int           defaultASCII = 65; int rows = 0; int columns = 0;
            List <string> notAvailable = new List <string>();

            if (roomSeats.Count() == 0)
            {
                return(new Room()
                {
                    seatArray = JsonConvert.SerializeObject(seatArray), rows = rows, columns = columns
                });
            }
            columns = roomSeats.Where(f => f.seat.row == "A").Count();
            rows    = roomSeats.Where(f => f.seat.column == 1).Count();
            for (int i = 0; i < rows; i++)
            {
                string roomRow = "";
                for (int c = 0; c < columns; c++)
                {
                    RoomSeat roomSeat = roomSeats
                                        .Where(r => ((int)r.seat.row.ToCharArray()[0] == (defaultASCII + i)) && r.seat.column == (c + 1)).FirstOrDefault();
                    Debug.WriteLine("Asiento: " + JsonConvert.SerializeObject(roomSeats));

                    if (roomSeat != null)
                    {
                        roomRow += "a";
                        if (roomSeat.status != 1)
                        {
                            notAvailable.Add(String.Concat(roomSeat.seat.row, "_", roomSeat.seat.column));
                        }
                    }
                }
                if (roomRow != "")
                {
                    seatArray.Add(roomRow);
                }
            }
            return(new Room()
            {
                seatArray = JsonConvert.SerializeObject(seatArray), notAvailable = JsonConvert.SerializeObject(notAvailable), rows = rows, columns = columns
            });
        }