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); }
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); } }
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())); }
public async Task <IHttpActionResult> GetRoomSeat(int id) { RoomSeat roomSeat = await db.RoomSeats.FindAsync(id); if (roomSeat == null) { return(NotFound()); } return(Ok(roomSeat)); }
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)); }
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); } }
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 }); }