public ActionResult ImportClassModule(HttpPostedFileBase file) { if ((file != null) && (file.ContentLength > 0) && !string.IsNullOrEmpty(file.FileName)) { if (!file.FileName.EndsWith("xlsx")) { return(Error("File import phải là .xlsx!")); } ////////////////////////////////////////////////////// ////////////////////////////////////////////////////// //Constant Variables for importing //var CURRENT_COMPANY = 3; var Course_NgoaiKhoa_Id = 8; ////////////////////////////////////////////////////// ////////////////////////////////////////////////////// var center = IoCConfig.Service <ICompanyService>().FindById(CURRENT_COMPANY); CourseFamily ngoaikhoa = IoCConfig.Service <ICourseFamilyService>().FindById(Course_NgoaiKhoa_Id); var reserved_fc = center.Faculties.Valid().First(); using (var package = new ExcelPackage(file.InputStream)) { var sheets = package.Workbook.Worksheets; foreach (var workSheet in sheets) { var noOfCol = workSheet.Dimension.End.Column; var noOfRow = workSheet.Dimension.End.Row; //Current Class //AMMHCM //var class_name = workSheet.Name.Trim(); //var class_name = GetCellValue(workSheet, rowIterator, (int)TKBEnum.Class); //var current_class = center.Classes.Valid().FirstOrDefault(c => c.Class_Name.ToLower().Equals(class_name.ToLower()));//IoCConfig.Service<IClassService>().FindValidByCriteria(c => c.Class_Name.ToLower().Equals(class_name.ToLower())); //if (IsValidModel(current_class)) if (true) { //Class_Module Class_Module class_module = null;//current class_module for (int rowIterator = 2; rowIterator <= noOfRow; rowIterator++) { try { var class_name = GetCellValue(workSheet, rowIterator, (int)TKBEnum.Class); var current_class = center.Classes.Valid().FirstOrDefault(c => c.Class_Name.ToLower().Equals(class_name.ToLower())); if (current_class == null) { continue; } var class_module_day = GetClassModuleDay(workSheet, rowIterator, center, current_class, ngoaikhoa); if (class_module_day == null) { continue; } //Check existed var existed = IoCConfig.Service <IClass_ModuleService>() .FindValidByCriteria(c => c.Class_Id == current_class.Id && c.Module_Id == class_module_day.Module_Id); if (existed == null) { if (class_module_day.Faculty_Id == 0) { class_module_day.Faculty_Id = reserved_fc.Id; } class_module = new Class_Module { Class_Id = current_class.Id, Class_Module_Day = current_class.Class_Day, Class_Module_Hour_Start = current_class.Class_Hour_Start, Class_Module_Hour_End = current_class.Class_Hour_End, Class_Module_Status = (int)ClassModuleStatusEnum.Studying, Class_Module_Date_Start = class_module_day.Class_Module_Date_Start, Class_Module_Date_End = class_module_day.Class_Module_Date_Start, Class_Module_Date_Exam = class_module_day.Class_Module_Date_Start, Class_Module_DurationByDay = 0, Faculty_Id = class_module_day.Faculty_Id, Module_Id = class_module_day.Module_Id, Resource_LT_Id = class_module_day.Resource_LT_Id, Resource_TH_Id = class_module_day.Resource_TH_Id, Resource_Exam_Id = class_module_day.Resource_Exam_Id, Created_Date = DateTime.Now, Status = (int)EntityStatus.Visible, }; class_module.AddStudents(current_class); class_module = IoCConfig.Service <IClass_ModuleService>().Add(class_module); } else { class_module = existed; if (class_module_day.Faculty_Id != 0) { class_module.Faculty_Id = class_module_day.Faculty_Id; class_module.Resource_LT_Id = class_module_day.Resource_LT_Id; class_module.Resource_TH_Id = class_module_day.Resource_TH_Id; class_module.Resource_Exam_Id = class_module_day.Resource_Exam_Id; } else { class_module.Resource_Exam_Id = class_module_day.Resource_Exam_Id; } class_module = IoCConfig.Service <IClass_ModuleService>().Update(class_module); } //If first day if (class_module_day.Class_Module_Status == (int)ClassModuleDayStatusEnum.Studying) { var day_count = class_module_day.Class_Module_Day; if (class_module.Class_Module_Days_List.Count() >= day_count) { continue; } } else { if (class_module.Class_Module_Days_List.Any(d => d.Class_Module_Day_Status == (int)ClassModuleDayStatusEnum.Test)) { continue; } } //Add new class_module_day if (class_module != null) { var date = class_module_day.Class_Module_Date_Start; var status = (ClassModuleDayStatusEnum)class_module_day.Class_Module_Status; class_module.AddModuleDay(date, current_class, status); class_module.Class_Module_Date_End = date; class_module.Class_Module_Date_Exam = date; class_module.Class_Module_DurationByDay++; IoCConfig.Service <IClass_ModuleService>().Update(class_module); } } catch (Exception ex) { throw ex; } } } } return(MyContent("Upload successfully!")); } } return(Error()); }
private Class_Module GetClassModuleDay(ExcelWorksheet workSheet, int rowIterator, Company center, Class current_class, CourseFamily ngoaikhoa) { Class_Module item = new Class_Module(); var Class_Module_Date_Start = GetCellValue_DateTime(workSheet, rowIterator, (int)TKBEnum.Date); if (Class_Module_Date_Start == null) { return(null); } item.Class_Module_Date_Start = Class_Module_Date_Start.Value; var module = GetCellValue(workSheet, rowIterator, (int)TKBEnum.Module); if (string.IsNullOrEmpty(module)) { return(null); } module = module.ToLower(); var module_names = module.Split("-".ToCharArray()); if (module_names.Length != 2) { return(null); } var module_code = module_names[0].Trim(); var module_day = module_names[1].Trim(); if (string.IsNullOrEmpty(module_day)) { return(null); } //1. Module var _module = current_class.CourseFamily.Modules_List .FirstOrDefault(m => m.Module_Code != null && m.Module_Code.ToLower().Equals(module_code));//IoCConfig.Service<IModuleService>().FindValidByCriteria(m => m.Module_Code != null && m.Module_Code.ToLower().Equals(module_code)); if (!IsValidModel(_module) && ngoaikhoa != null) { _module = ngoaikhoa.Modules_List .FirstOrDefault(m => m.Module_Code != null && m.Module_Code.ToLower().Equals(module_code)); } if (!IsValidModel(_module)) { return(null); } item.Module_Id = _module.Id; if (module_day != "test") { item.Class_Module_Day = int.Parse(module_day); item.Class_Module_Status = (int)ClassModuleDayStatusEnum.Studying; } else { item.Class_Module_Day = 0; item.Class_Module_Status = (int)ClassModuleDayStatusEnum.Test; } //2. FC item.Faculty_Id = 0; var FC_Nickname = GetCellValue(workSheet, rowIterator, (int)TKBEnum.FC); if (!string.IsNullOrEmpty(FC_Nickname)) { var _fc = IoCConfig.Service <IFacultyService>().FindValidByCriteria(f => f.Company_Id == center.Id && f.FC_Nickname != null && f.FC_Nickname.ToLower().Equals(FC_Nickname.ToLower())); //center.Faculties.Valid().FirstOrDefault(f => f.FC_Nickname != null && f.FC_Nickname.ToLower().Equals(FC_Nickname.ToLower())); if (!IsValidModel(_fc)) { _fc = IoCConfig.Service <IFacultyService>().Add(new Faculty { Company_Id = center.Id, FC_Name = FC_Nickname, FC_Nickname = FC_Nickname, FC_Type = (int)FacultyTypeEnum.PartTime, FC_Gender = (int)GenderEnum.Male, FC_Birthday = DateTime.Today, FC_Salary = 0, FC_WorkingHour = 0, FC_CMND_NgayCap = DateTime.Today, Status = (int)EntityStatus.Visible }); } item.Faculty_Id = _fc.Id; } //3. Resource var Resource_Name = GetCellValue(workSheet, rowIterator, (int)TKBEnum.Resource); if (string.IsNullOrEmpty(Resource_Name)) { return(null); } var _resource = IoCConfig.Service <IResourceService>().FindValidByCriteria(r => r.Company_Id == center.Id && r.Resource_Name != null && r.Resource_Name.ToLower().Equals(Resource_Name.ToLower())); //center.Resources.Valid().FirstOrDefault(r => r.Resource_Name != null && r.Resource_Name.ToLower().Equals(Resource_Name.ToLower())); if (!IsValidModel(_resource)) { _resource = IoCConfig.Service <IResourceService>().Add(new Resource { Company_Id = center.Id, Resource_Name = Resource_Name, Status = (int)EntityStatus.Visible }); } item.Resource_LT_Id = _resource.Id; item.Resource_TH_Id = _resource.Id; item.Resource_Exam_Id = _resource.Id; return(item); }