public RoomLoadViewModel GetRoomLoad(int seanceId) { RoomLoadViewModel rl = new RoomLoadViewModel(); SEANS seance = GetSeanceById(seanceId); SALA r = GetRoomById(seance.FK_IdSali); rl.RoomId = r.IdSali; rl.AirConditioner = r.Klimatyzacja; rl.RoomName = r.NazwaSali; rl.SeatsCount = r.MIEJSCE.Count(); var seats = r.MIEJSCE.OrderBy(rd => rd.Rzad).ThenBy(rd => rd.Miejsce1); var busySeats = from s in db.MIEJSCE join b in db.WYKUP_BILET on s.IdMiejsca equals b.FK_IdMiejsca join se in db.SEANS on b.FK_IdSeansu equals se.IdSeansu where se.IdSeansu == seanceId select s; var emptySeats = seats.Except(busySeats); rl.BusySeatsCount = busySeats.Count(); rl.EmptySeatsCount = emptySeats.Count(); var rows = from s in seats select s.Rzad; var rowMaxNr = rows.Max(); rl.RowsCount = rowMaxNr; var srList = new List <SeatsRow>(); for (int i = 0; i < rowMaxNr; i++) { srList.Add(new SeatsRow()); srList.ElementAt(i).Seats = new List <MIEJSCE>(); srList.ElementAt(i).RowNumber = i + 1; } rl.SeatStatuses = new Dictionary <int, bool>(); foreach (MIEJSCE s in seats) { srList.ElementAt(s.Rzad - 1).Seats.Add(s); } foreach (MIEJSCE s in emptySeats) { rl.SeatStatuses.Add(s.IdMiejsca, false); } foreach (MIEJSCE s in busySeats) { rl.SeatStatuses.Add(s.IdMiejsca, true); } rl.Rows = srList; rl.MovieDuration = (System.TimeSpan)seance.FILM.CzasTrwania; rl.MovieTitle = seance.FILM.NazwaFilmuPL; rl.SeanceDate = seance.SeansData; rl.SeanceTime = seance.SeansGodzina; rl.MovieType = seance.FILM.RodzajFilmu; rl.SeanceId = seance.IdSeansu; return(rl); }
public RoomLoadViewModel GetRoomLoad(int seanceId) { RoomLoadViewModel rl = new RoomLoadViewModel(); SEANS seance = GetSeanceById(seanceId); SALA r = GetRoomById(seance.FK_IdSali); rl.RoomId = r.IdSali; rl.AirConditioner = r.Klimatyzacja; rl.RoomName = r.NazwaSali; rl.SeatsCount = r.MIEJSCE.Count(); var seats = r.MIEJSCE.OrderBy(rd => rd.Rzad).ThenBy(rd => rd.Miejsce1); var busySeats = from s in db.MIEJSCE join b in db.WYKUP_BILET on s.IdMiejsca equals b.FK_IdMiejsca join se in db.SEANS on b.FK_IdSeansu equals se.IdSeansu where se.IdSeansu == seanceId select s; var emptySeats = seats.Except(busySeats); rl.BusySeatsCount = busySeats.Count(); rl.EmptySeatsCount = emptySeats.Count(); var rows = from s in seats select s.Rzad; var rowMaxNr = rows.Max(); rl.RowsCount = rowMaxNr; var srList = new List<SeatsRow>(); for(int i = 0; i < rowMaxNr; i++) { srList.Add(new SeatsRow()); srList.ElementAt(i).Seats = new List<MIEJSCE>(); srList.ElementAt(i).RowNumber = i + 1; } rl.SeatStatuses = new Dictionary<int, bool>(); foreach( MIEJSCE s in seats) { srList.ElementAt(s.Rzad - 1).Seats.Add(s); } foreach(MIEJSCE s in emptySeats) { rl.SeatStatuses.Add(s.IdMiejsca, false); } foreach(MIEJSCE s in busySeats) { rl.SeatStatuses.Add(s.IdMiejsca, true); } rl.Rows = srList; rl.MovieDuration = (System.TimeSpan) seance.FILM.CzasTrwania; rl.MovieTitle = seance.FILM.NazwaFilmuPL; rl.SeanceDate = seance.SeansData; rl.SeanceTime = seance.SeansGodzina; rl.MovieType = seance.FILM.RodzajFilmu; rl.SeanceId = seance.IdSeansu; return rl; }