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