public SoHoatDongToChucTrongThang LaySoHdTcTungThangChoHocVien(IList <HoatDongDtoForTable> danhSachHoatDong, int namHocLay = 0) { //Lấy số hoạt động tổ chức từng tháng của học viện //Hoặc có thể dùng để tính số hoạt động 1 sinh viên tham gia trong từng tháng var soHoatDongToChucTrongThang = new SoHoatDongToChucTrongThang(); DateTime batDauNamHoc = new DateTime(); DateTime tgDungTinh = new DateTime(); //^ Mốc thời gian để dừng lấy hoạt động, nếu là lấy hđ năm nay thì dừng tới tháng hiện tại //Nếu lấy hoạt động của một năm học cụ thể thì đó là 31/7/năm học if (namHocLay == 0) //Nếu ta lấy hoạt động của năm học hiện tại { tgDungTinh = DateTime.Today; var thisYear = tgDungTinh.Year; if (DateTime.Today.Month < 8) //Nghĩa là đang là tháng 1-7 của năm học này, sẽ phải lấy từ tháng 8 năm trước { batDauNamHoc = new DateTime(thisYear - 1, 8, 1); } else //Nếu là đang trong tháng 8 -12 thì lấy luôn năm nay { batDauNamHoc = new DateTime(thisYear, 8, 1); } } else //Nếu ta lấy hoạt động trong 1 năm cụ thể { tgDungTinh = new DateTime(namHocLay + 1, 7, 31); batDauNamHoc = new DateTime(namHocLay, 8, 1); } for (var time = batDauNamHoc; time <= tgDungTinh;) { soHoatDongToChucTrongThang.DanhSachThang.Add(time.Month + "-" + time.Year); soHoatDongToChucTrongThang.SoHoatDongHocVienToChuc.Add(danhSachHoatDong.Count(LayHoatDongThang_HoatDongDtoFunc(time))); time = time.AddMonths(1); } return(soHoatDongToChucTrongThang); }
public SoHoatDongToChucTrongThang LaySoHdTcTungThangChoLop_DonVi(List <HoatDongToChucDto> danhSachHoatDongToChucResultSet, int namHocLay = 0) { //Ngoài ra còn dùng method này để lấy cho đơn vị, có lẽ nên đổi tên method...sau đi :p //Lấy số hoạt động tổ chức từng tháng của lớp và của học viện (để so sánh) var soHoatDongToChucTrongThang = new SoHoatDongToChucTrongThang(); var batDauNamHoc = new DateTime(); var tgDungTinh = new DateTime(); //^ Mốc thời gian để dừng lấy hoạt động, nếu là lấy hđ năm nay thì dừng tới tháng hiện tại //Nếu lấy hoạt động của một năm học cụ thể thì đó là 31/7/năm học if (namHocLay == 0) //Nếu năm học lấy = 0, lấy năm học hiện tại { tgDungTinh = DateTime.Today; var thisYear = tgDungTinh.Year; batDauNamHoc = DateTime.Today.Month < 8 ? new DateTime(thisYear - 1, 8, 1) : new DateTime(thisYear, 8, 1); } else //Nếu ta lấy hoạt động trong 1 năm cụ thể { tgDungTinh = new DateTime(namHocLay + 1, 7, 31); batDauNamHoc = new DateTime(namHocLay, 8, 1); } for (var time = batDauNamHoc; time <= tgDungTinh;) { soHoatDongToChucTrongThang.DanhSachThang.Add(time.Month + "-" + time.Year); var soHoatDongToChuc = danhSachHoatDongToChucResultSet .Where(LayHoatDongThang_HoatDongToChucDtoFunc(time)) .Count(hd => hd.CoThamGiaToChuc); var soHoatDongHocVienToChuc = danhSachHoatDongToChucResultSet .Count(LayHoatDongThang_HoatDongToChucDtoFunc(time)); soHoatDongToChucTrongThang.SoHoatDongLopToChuc.Add(soHoatDongToChuc); soHoatDongToChucTrongThang.SoHoatDongHocVienToChuc.Add(soHoatDongHocVienToChuc); time = time.AddMonths(1); } return(soHoatDongToChucTrongThang); }