public IHttpActionResult GetAll(string _maxe) { try { using (var db = new DB()) { List <Ghe> ghes = db.Ghes .Where(x => x.maxe == _maxe).OrderByDescending(x => x.ngaycapnhat) .ToList(); List <GheHang> ghesAllTang1 = new List <GheHang>(); List <GheHang> ghesAllTang2 = new List <GheHang>(); for (int i = 0; i < 7; i++) { GheHang gheHangTang1 = new GheHang() { Hang = (i + 1), Tang = 1, Ghes = new List <EGhe>() }; GheHang gheHangTang2 = new GheHang() { Hang = (i + 1), Tang = 2, Ghes = new List <EGhe>() }; for (int j = 0; j < 5; j++) { gheHangTang1.Ghes.Add(new EGhe() { active = false, maghe = "", maxe = _maxe, tang = 1, vitriX = (j + 1), vitriY = (i + 1) }); gheHangTang2.Ghes.Add(new EGhe() { active = false, maghe = "", maxe = _maxe, tang = 2, vitriX = (j + 1), vitriY = (i + 1) }); } ghesAllTang1.Add(gheHangTang1); ghesAllTang2.Add(gheHangTang2); } ghes.ForEach(x => { EGhe ghe = ghesAllTang1.FirstOrDefault(y => y.Tang == x.tang && y.Hang == x.vitriY)?.Ghes.FirstOrDefault(y => y.vitriX == x.vitriX); if (ghe != null) { ghe.maghe = x.maghe.Split('_')[1]; ghe.active = x.active; } else { ghe = ghesAllTang2.FirstOrDefault(y => y.Tang == x.tang && y.Hang == x.vitriY) .Ghes .FirstOrDefault(y => y.vitriX == x.vitriX); if (ghe != null) { ghe.maghe = x.maghe.Split('_')[1]; ghe.active = x.active; } } }); return(Ok(new { ghetang1 = ghesAllTang1.Select(x => new { x.Hang, x.Tang, Ghes = x.Ghes.Select(y => new { y.maghe, y.maxe, y.vitriX, y.vitriY, y.tenghe, y.active, y.tang }) }), ghetang2 = ghesAllTang2.Select(x => new { x.Hang, x.Tang, Ghes = x.Ghes.Select(y => new { y.maghe, y.maxe, y.vitriX, y.vitriY, y.tenghe, y.active, y.tang }) }) })); } } catch (Exception ex) { return(BadRequest(ex.Message)); } }
public IHttpActionResult GetGheXe(string machuyenxe, DateTime ngaydi) { try { using (var db = new DB()) { ngaydi = ngaydi.Date; List <Database.TrangThaiGhe> trangThaiGhes = db.TrangThaiGhes .Where(x => x.machuyenxe == machuyenxe && x.Ghe.active == true) .ToList(); List <GheHang> ghesAllTang1 = new List <GheHang>(); List <GheHang> ghesAllTang2 = new List <GheHang>(); for (int i = 0; i < 7; i++) { GheHang gheHangTang1 = new GheHang() { Hang = (i + 1), Tang = 1, Ghes = new List <EGhe>() }; GheHang gheHangTang2 = new GheHang() { Hang = (i + 1), Tang = 2, Ghes = new List <EGhe>() }; for (int j = 0; j < 5; j++) { gheHangTang1.Ghes.Add(new EGhe() { active = false, maghe = "", tang = 1, vitriX = (j + 1), vitriY = (i + 1), trangthai = 0 }); gheHangTang2.Ghes.Add(new EGhe() { active = false, maghe = "", tang = 2, vitriX = (j + 1), vitriY = (i + 1), trangthai = 0 }); } ghesAllTang1.Add(gheHangTang1); ghesAllTang2.Add(gheHangTang2); } trangThaiGhes.ForEach(x => { EGhe ghe = ghesAllTang1.FirstOrDefault(y => y.Tang == x.Ghe.tang && y.Hang == x.Ghe.vitriY)?.Ghes.FirstOrDefault(y => y.vitriX == x.Ghe.vitriX); if (ghe != null) { ghe.maghe = x.maghe.Split('_')[1]; ghe.active = x.Ghe.active; ghe.trangthai = x.trangthai; } else { ghe = ghesAllTang2.FirstOrDefault(y => y.Tang == x.Ghe.tang && y.Hang == x.Ghe.vitriY) .Ghes .FirstOrDefault(y => y.vitriX == x.Ghe.vitriX); if (ghe != null) { ghe.maghe = x.maghe.Split('_')[1]; ghe.active = x.Ghe.active; ghe.trangthai = x.trangthai; } } }); return(Ok(new { ghetang1 = ghesAllTang1.Select(x => new { x.Hang, x.Tang, Ghes = x.Ghes.Select(y => new { y.maghe, y.vitriX, y.vitriY, y.active, y.tang, y.trangthai }) }), ghetang2 = ghesAllTang2.Select(x => new { x.Hang, x.Tang, Ghes = x.Ghes.Select(y => new { y.maghe, y.vitriX, y.vitriY, y.active, y.tang, y.trangthai }) }) })); } } catch (Exception ex) { return(BadRequest(ex.Message)); } }