Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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;


        }