예제 #1
0
        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);
        }
예제 #2
0
        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);
        }