public ThongKeVanBanBO GetThongKeByYear() { var result = new ThongKeVanBanBO(); var sourceHoSo = this.repository.All().Select(x => new { x.HOSO_NAM, x.ID }).ToList(); var sourceVanBan = new QuanLyVanBanBusiness(new UnitOfWork()).repository.All().Select(x => x.HOSO_ID).ToList(); var listHoSo = new List <string>(); var listVanBan = new List <string>(); var sourceYear = sourceHoSo.Where(x => x.HOSO_NAM.HasValue).Select(x => x.HOSO_NAM).Distinct().OrderBy(x => x.Value).ToList(); var listYear = new List <string>(); foreach (var item in sourceYear) { var listID = sourceHoSo.Where(x => x.HOSO_NAM == item).Select(x => x.ID); listHoSo.Add(listID.Count().ToString()); listVanBan.Add(sourceVanBan.Where(x => listID.Contains(x.Value)).Count().ToString()); listYear.Add("Năm " + item); } JavaScriptSerializer javascript = new JavaScriptSerializer(); result.HoSo = javascript.Serialize(listHoSo); result.VanBan = javascript.Serialize(listVanBan); result.Nam = javascript.Serialize(listYear); return(result); }
public PageListResultBO <VanBanPageListBO> GetPageForVanBan(QuanLyHoSoSearchModel searchModel, int pageNumber, int pageSize) { IQueryable <VanBanPageListBO> query = ( from hs in this.context.QUANLY_HOSO orderby hs.TIEUDE select new VanBanPageListBO { DONVI_ID = hs.DONVI_ID, HOSO_ID = hs.ID, HOSO_NAME = hs.TIEUDE, HOSO_NAM = hs.HOSO_NAM, NAM_CHINH_LY = hs.NAM_CHINHLY, KHO_ID = hs.KHO_ID, PHONG_ID = hs.PHONG_ID, FTS = hs.FTS }); if (searchModel != null) { if (searchModel.HoSoNam > 0) { query = query.Where(x => x.HOSO_NAM == searchModel.HoSoNam); } if (searchModel.NamChinhLy > 0) { query = query.Where(x => x.NAM_CHINH_LY == searchModel.NamChinhLy); } if (searchModel.KhoId > 0) { query = query.Where(x => x.KHO_ID == searchModel.KhoId); } if (searchModel.PhongId > 0) { query = query.Where(x => x.PHONG_ID == searchModel.PhongId); } if (!string.IsNullOrEmpty(searchModel.FTS)) { searchModel.FTS = searchModel.FTS.ConvertToVN(); query = query.Where(x => x.FTS.Contains(searchModel.FTS)); } if (!string.IsNullOrEmpty(searchModel.sortQuery)) { query = query.OrderBy(searchModel.sortQuery); } else { query = query.OrderByDescending(x => x.HOSO_ID); } } var resultModel = new PageListResultBO <VanBanPageListBO>(); var dataPageList = query.ToPagedList(pageNumber, pageSize); var listHoSo = dataPageList.ToList(); resultModel.Count = dataPageList.TotalItemCount; resultModel.TotalPage = dataPageList.PageCount; var listHoSoID = listHoSo.Select(x => x.HOSO_ID).ToList(); var total = query.Count(); var listVanBan = new QuanLyVanBanBusiness(new UnitOfWork()).GetByListHoSo(listHoSoID); //Lấy list van ban foreach (var item in listHoSo) { var sourceVB = listVanBan.Where(x => x.HOSO_ID == item.HOSO_ID).ToList(); //item.ListVanBan = sourceVB; item.TotalVanBan = sourceVB.Count; } resultModel.ListItem = listHoSo; return(resultModel); }