public List<ImportTraineeEntity> GetListTrainee(List<ImportTraineeEntity> lstImport, string UserLogin) { int NumTrainee = 0; var message = string.Empty; var lstTraineeData = new List<ImportTraineeEntity>(); using (var context = new VnrHrmDataContext()) { string status = string.Empty; var services = new Tra_TraineeServices(); var unitOfWork = (IUnitOfWork)(new UnitOfWork(context)); var repoTra_Class = new CustomBaseRepository<Tra_Class>(unitOfWork); var repoTra_CourseTopic = new CustomBaseRepository<Tra_CourseTopic>(unitOfWork); var repoTra_Trainee = new CustomBaseRepository<Tra_Trainee>(unitOfWork); var repoTra_TraineeTopic = new CustomBaseRepository<Tra_TraineeTopic>(unitOfWork); var repoHre_Profile = new CustomBaseRepository<Hre_Profile>(unitOfWork); var lstTraineeTopicAdd = new List<Tra_TraineeTopicEntity>(); var entity = new List<Tra_Trainee>(); var lstClassCode = lstImport.Select(m => m.ClassCode).Distinct().ToList(); var lstClass = repoTra_Class.FindBy(m => m.IsDelete == null && (lstClassCode.Contains(m.Code))) .Select(m => new { m.ID, m.CourseID, m.Code }).ToList(); var lstCourseID = lstClass.Select(m => m.CourseID).Distinct().ToList(); var lstCourseTopic = repoTra_CourseTopic.FindBy(m => m.IsDelete == null && (lstCourseID.Contains(m.CourseID))).Select(m => new { m.ID, m.CourseID, m.TopicID }).ToList(); var lstProfileCode = lstImport.Select(m => m.CodeEmp).Distinct().ToList(); var lstProfile = repoHre_Profile.FindBy(m => m.IsDelete == null && lstProfileCode.Contains(m.CodeEmp)).Select(m => new { m.ID, m.CodeEmp }).ToList(); var requirementServices = new Tra_RequirementTrainServices(); var objRequirement = new List<object>(); objRequirement.AddRange(new object[7]); objRequirement[5] = 1; objRequirement[6] = int.MaxValue - 1; var lstRequirement = requirementServices.GetData<Tra_RequirementTrainEntity>(objRequirement, ConstantSql.hrm_tra_sp_get_RequirementTrain, UserLogin, ref status).ToList(); var requirementDetailServices = new Tra_RequirementTrainDetailServices(); var objRequirementDetail = new List<object>(); objRequirementDetail.Add(null); objRequirementDetail.Add(1); objRequirementDetail.Add(int.MaxValue - 1); var lstRequirementDetail = requirementDetailServices.GetData<Tra_RequirementTrainDetailEntity>(objRequirementDetail, ConstantSql.hrm_tra_sp_get_RequirementDetail, UserLogin, ref status).ToList(); List<Tra_Trainee> lstTrainee = new List<Tra_Trainee>(); List<Tra_TraineeTopic> lstTraineeTopic = new List<Tra_TraineeTopic>(); foreach (var item in lstImport) { var traClass = lstClass.Where(m => m.Code == item.ClassCode).FirstOrDefault(); if (traClass == null) { continue; } var requirementEntity = lstRequirement.Where(s => s.Code == item.RequirementCode).FirstOrDefault(); if (requirementEntity == null) { continue; } var requirementDetailEntity = lstRequirementDetail.Where(s => s.CourseID != null && lstCourseID.Contains(s.CourseID.Value) && s.ProfileID != null && !string.IsNullOrEmpty(s.CodeEmp) && item.CodeEmp == s.CodeEmp).FirstOrDefault(); if (requirementDetailEntity == null) { continue; } var profile = lstProfile.Where(m => m.CodeEmp == item.CodeEmp).FirstOrDefault(); if (profile == null) { continue; } ImportTraineeEntity trainee = new ImportTraineeEntity(); trainee.CodeEmp = profile.CodeEmp; trainee.ClassCode = traClass.Code; trainee.RequirementCode = requirementEntity.Code; trainee.Status = item.Status; lstTraineeData.Add(trainee); } } return lstTraineeData; }
public JsonResult SaveImortTrainee([DataSourceRequest] DataSourceRequest request, CatImportModel model) { var services = new Tra_TraineeServices(); List<ImportTraineeEntity> lstTrainee = new List<ImportTraineeEntity>(); List<ImportTraineeEntity> lstTraineeTranslate = new List<ImportTraineeEntity>(); List<Tra_TraineeScoreImport> DataError = new List<Tra_TraineeScoreImport>(); var _fileName = Common.GetPath(Common.TemplateURL) + model.TemplateFile; _fileName = _fileName.Replace("/", "\\"); ImportService = new ImportService { //FileName = Common.GetPath(model.TemplateFile), FileName = _fileName, DateTimeFormat = model.FormatDate, ImportTemplateID = model.ID, }; try { var table = ImportService.ImportNew(_fileName, model.TemplateFile, model.ID); lstTrainee = table.Translate<ImportTraineeEntity>(); foreach (var item in lstTrainee) { var entity = new ImportTraineeEntity { CodeEmp = item.Column2, ClassCode = item.Column3, RequirementCode = item.Column4, Status = item.Column5 }; lstTraineeTranslate.Add(entity); } var message = services.ImportTrainee(lstTraineeTranslate,UserLogin); if (message == NotificationType.Success.ToString()) { return Json(message, JsonRequestBehavior.AllowGet); } } catch (Exception ex) { model.Description = ex.Message; } return Json(DataError.ToDataSourceResult(request), JsonRequestBehavior.AllowGet); }