public async Task <object> LayDanhSachGheTheoRap(int maRap) { using (var connection = new SqlConnection(connectionString)) { if (connection.State == ConnectionState.Closed) { connection.Open(); } List <GheTheoHangVM> listGhe = new List <GheTheoHangVM>(); RapViewModel_DSGhe rapVM = new RapViewModel_DSGhe(); IEnumerable <Ghe> listGheTheoRap = connection.Query <Ghe>("SELECT * FROM [dbo].[GHE] WHERE MaRap = " + maRap, commandType: CommandType.Text); IEnumerable <LoaiGhe> listLoaiGhe = connection.Query <LoaiGhe>("SELECT * FROM dbo.LOAIGHE", commandType: CommandType.Text); foreach (var phongRap in listGheTheoRap.GroupBy(n => new { n.TenHang })) //Lấy ra rạp đang chiếu { GheTheoHangVM gheTheoHang = new GheTheoHangVM(); gheTheoHang.TenHang = phongRap.Key.TenHang; foreach (var pr in phongRap) { GheViewModel ghe = new GheViewModel(); LoaiGhe loaiGhe = new LoaiGhe(); loaiGhe = listLoaiGhe.Single(n => n.MaLoaiGhe == pr.MaLoaiGhe); ghe.MaRap = maRap; // (phongRap.MaLoaiGheNavigation.ChietKhau * giaVe) / 100 + int phuThu = loaiGhe.PhuThu; ghe.LoaiGhe = loaiGhe.TenLoaiGhe; ghe.MaGhe = pr.MaGhe; ghe.TenGhe = pr.TenGhe; ghe.STT = pr.SoThuTu; ghe.PhuThu = phuThu; gheTheoHang.DanhSachGheTheoHang.Add(ghe); } listGhe.Add(gheTheoHang); } rapVM.DanhSachGhe = listGhe; return(rapVM); } }
//Lấy danh sách phòng vé public async Task <object> LayDanhSachPhongVe(int maLichChieu) { using (var connection = new SqlConnection(connectionString)) { if (connection.State == ConnectionState.Closed) { connection.Open(); } if (maLichChieu == 0) { return(await thongBaoLoi.thongBaoLoi(ThongBaoLoi.Loi500, "Mã lịch chiếu không hợp lệ!")); } LichChieu lichChieu = connection.QuerySingleOrDefault <LichChieu>("SELECT * FROM [dbo].[View_LICH_CHIEU_COMMON] " + "WHERE MaLichChieu = " + maLichChieu, commandType: CommandType.Text); if (lichChieu == null) { return(await thongBaoLoi.thongBaoLoi(ThongBaoLoi.Loi500, "Mã lịch chiếu không tồn tại!")); } decimal giaVe = lichChieu.GiaVe; var listDanhSachGheDuocDat = connection.Query <Ve>("SELECT * FROM [dbo].[VE] " + "WHERE MaLichChieu = " + maLichChieu, commandType: CommandType.Text); bool flag = false; LichChieuTheoRapViewModel rap = new LichChieuTheoRapViewModel(); List <GheTheoHangVM> listGhe = new List <GheTheoHangVM>(); int?MaRap = lichChieu.MaRap; IEnumerable <Ghe> listGheTheoRap = connection.Query <Ghe>("SELECT * FROM [dbo].[GHE] WHERE MaRap = " + lichChieu.MaRap, commandType: CommandType.Text); IEnumerable <LoaiGhe> listLoaiGhe = connection.Query <LoaiGhe>("SELECT * FROM dbo.LOAIGHE", commandType: CommandType.Text); IEnumerable <ThanhVien> listThanhVien = connection.Query <ThanhVien>("SELECT * FROM dbo.THANHVIEN", commandType: CommandType.Text); IEnumerable <ThanhToan> listThanhToan = connection.Query <ThanhToan>("SELECT * FROM dbo.PHIEUTHANHTOAN", commandType: CommandType.Text); foreach (var phongRap in listGheTheoRap.GroupBy(n => new { n.TenHang })) //Lấy ra rạp đang chiếu { GheTheoHangVM gheTheoHang = new GheTheoHangVM(); gheTheoHang.TenHang = phongRap.Key.TenHang; foreach (var pr in phongRap) { flag = false; GheViewModel ghe = new GheViewModel(); LoaiGhe loaiGhe = new LoaiGhe(); loaiGhe = listLoaiGhe.Single(n => n.MaLoaiGhe == pr.MaLoaiGhe); ghe.MaRap = pr.MaRap; // (phongRap.MaLoaiGheNavigation.ChietKhau * giaVe) / 100 + int phuThu = loaiGhe.PhuThu; ghe.GiaVe = (phuThu * giaVe) / 100 + giaVe; ghe.LoaiGhe = loaiGhe.TenLoaiGhe; ghe.MaGhe = pr.MaGhe; ghe.TenGhe = pr.TenGhe; ghe.STT = pr.SoThuTu; ghe.PhuThu = phuThu; foreach (var rapDatVe in listDanhSachGheDuocDat) //Lấy ra danh sách ghế được đặt { //ghe.TaiKhoanNguoiDat= connection.QuerySingleOrDefault<string>("SELECT TaiKhoan FROM [dbo].[THANHVIEN] WHERE TaiKhoan = '" + rapDatVe.TaiKhoan + "'", commandType: CommandType.Text); if (pr.MaGhe == rapDatVe.MaGhe && !rapDatVe.TrangThaiHuy) { ThanhToan thanhToan = listThanhToan.Single(n => n.MaThanhToan == rapDatVe.MaThanhToan); ThanhVien tv = listThanhVien.Single(n => n.MaThanhVien == thanhToan.MaThanhVien); ghe.TaiKhoanNguoiDat = tv.TaiKhoan; flag = true; } } if (flag == true) { ghe.DaDat = true; } gheTheoHang.DanhSachGheTheoHang.Add(ghe); } listGhe.Add(gheTheoHang); } rap.DanhSachGhe = listGhe; rap.ThongTinPhim.NgayChieu = lichChieu.NgayChieuGioChieu.ToString("dd/MM/yyyy"); rap.ThongTinPhim.GioChieu = lichChieu.NgayChieuGioChieu.ToString("HH:mm"); //rap.ThongTinPhim.hinhAnh = DomainImage + LichChieu.MaPhimNavigation.HinhAnh; rap.ThongTinPhim.MaLichChieu = maLichChieu; rap.ThongTinPhim.TenRap = connection.QuerySingleOrDefault <string>("SELECT TenRap FROM [dbo].[RAP] WHERE MaRap = '" + lichChieu.MaRap + "'", commandType: CommandType.Text); rap.ThongTinPhim.TenCumRap = connection.QuerySingleOrDefault <string>("SELECT TenCumRap FROM [dbo].[CUMRAP] WHERE MaCumRap = '" + lichChieu.MaCumRap + "'", commandType: CommandType.Text); rap.ThongTinPhim.DiaChi = connection.QuerySingleOrDefault <string>("SELECT ThongTin FROM [dbo].[CUMRAP] WHERE MaCumRap = '" + lichChieu.MaCumRap + "'", commandType: CommandType.Text); var phim = connection.QuerySingleOrDefault <Phim>("SELECT * FROM [dbo].[PHIM] WHERE MaPhim = '" + lichChieu.MaPhim + "'", commandType: CommandType.Text); rap.ThongTinPhim.TenPhim = phim.TenPhim; rap.ThongTinPhim.DoTuoi = phim.DoTuoi; return(rap); } }