public ScheduleController(IScheduleService scheduleService,
                           ITermService termService,
                           IMappingService mappingService,
                           ICollegeService collegeService,
                           IEducationalGroupService educationalGroupService,
                           IProfessorService professorService,
                           IEducationalClassService educationalClassService,
                           IStudentEducationalClassService studentEducationalClassService,
                           IProfessorScoreService professorScoreService,
                           IIndicatorService indicatorService,
                           IMappingTypeService mappingTypeService,
                           IUniversityLevelMappingService universityLevelMappingService,
                           IEducationalGroupScoreService educationalGroupScoreService,
                           ILogService logService,
                           ILogTypeService logTypeService,
                           IUserService userService)
 {
     _scheduleService                = scheduleService;
     _termService                    = termService;
     _mappingService                 = mappingService;
     _collegeService                 = collegeService;
     _educationalGroupService        = educationalGroupService;
     _professorService               = professorService;
     _educationalClassService        = educationalClassService;
     _studentEducationalClassService = studentEducationalClassService;
     _professorScoreService          = professorScoreService;
     _indicatorService               = indicatorService;
     _logService                    = logService;
     _logTypeService                = logTypeService;
     _mappingTypeService            = mappingTypeService;
     _userService                   = userService;
     _universityLevelMappingService = universityLevelMappingService;
     _educationalGroupScoreService  = educationalGroupScoreService;
 }
        //دانشجو-کلاس-Remove
        public static Dictionary <string, string> SyncRemoveStudentEducationalClass(
            IStudentEducationalClassService studentEducationalClassService)
        {
            var studentEducationalClasses =
                ClientHelper.GetValue <StudentEducationalClassSyncModel>(StaticValue.StudentEducationalClass);
            var addOrUpdateResualt = new Dictionary <string, string>();
            var counter            = 1;

            studentEducationalClasses.ForEach(x =>
            {
                if (x != null)
                {
                    if (studentEducationalClassService.IsExist(y => y.Term.TermCode == x.Term && y.EducationalClass.CodeClass == x.EducationalClassId && y.StudentId == x.StudentId))
                    {
                        var r = studentEducationalClassService.Remove(x);

                        addOrUpdateResualt.Add($"{x.EducationalClassId}-{x.StudentId}-{counter}", r.GetDeleteResualt());
                        ++counter;
                    }
                    else
                    {
                        addOrUpdateResualt.Add($"{x.EducationalClassId}-{x.StudentId}-{counter}", 0.GetDeleteResualt());
                        ++counter;
                    }
                }
            });
            return(addOrUpdateResualt);
        }
        //دانشجو-کلاس-Add Or Update
        public static void SyncAddOrUpdateStudentEducationalClass(
            IStudentEducationalClassService studentEducationalClassService, ILogService logService, ILogTypeService logTypeService, IUserService userService, User user, string termCode)
        {
            var studentEducationalClasses =
                ClientHelper.GetValue <StudentEducationalClassSyncModel>(StaticValue.StudentEducationalClass + $"/{termCode}");

            //log get From service
            SyncService.LogSync(logService, logTypeService, userService, user, (int)LogTypeValue.دریافت_دانشجو_کلاس_از_سرویس);


            var addOrUpdateResualt = new Dictionary <string, int>();
            var counter            = 1;

            studentEducationalClasses.ForEach(x =>
            {
                if (x != null)
                {
                    if (HasNullValue(x))
                    {
                        addOrUpdateResualt.Add($"{x.EducationalClassId}-{x.StudentId}-{counter}", 4);
                    }
                    else
                    {
                        var r = studentEducationalClassService.AddOrUpdate(x);
                        addOrUpdateResualt.Add($"{x.EducationalClassId}-{x.StudentId}-{counter}", r);
                    }
                }
                ++counter;
            });

            var added            = addOrUpdateResualt.Count(x => x.Value == 1);
            var updatetd         = addOrUpdateResualt.Count(x => x.Value == 2);
            var warrning         = addOrUpdateResualt.Count(x => x.Value == 3);
            var notFounded       = addOrUpdateResualt.Count(x => x.Value == 4);
            var stringWarrning   = string.Empty;
            var stringNotFounded = string.Empty;

            foreach (var s in addOrUpdateResualt.Where(x => x.Value == 3).Select(x => x.Key))
            {
                stringWarrning = $"تعداد {warrning}" + " || " + s + " | ";
            }
            foreach (var s in addOrUpdateResualt.Where(x => x.Value == 4).Select(x => x.Key))
            {
                stringNotFounded = $"تعداد {notFounded}" + " || " + s + " | ";
            }

            stringWarrning   = !string.IsNullOrEmpty(stringWarrning.Trim()) ? stringWarrning : "بدون مشکل";
            stringNotFounded = !string.IsNullOrEmpty(stringNotFounded.Trim()) ? stringNotFounded : "بدون مشکل";

            SyncService.LogSync(logService, logTypeService, userService, user, (int)LogTypeValue.دانشجو_کلاس_اضافه_گردید, $"تعداد {added}");
            SyncService.LogSync(logService, logTypeService, userService, user, (int)LogTypeValue.دانشجو_کلاس_آپدیت_گردید, $"تعداد {updatetd}");
            SyncService.LogSync(logService, logTypeService, userService, user, (int)LogTypeValue.عملیات_ناموفق_در_بروزرسانی_دانشجو_کلاس, stringWarrning);
            SyncService.LogSync(logService, logTypeService, userService, user, (int)LogTypeValue.عملیات_ناموفق_به_دلیل_عدم_وجود_حداقل_یک_مقدار_از_دانشجو_کلاس, stringNotFounded);


            // return addOrUpdateResualt;
        }
Exemple #4
0
        public PagesController(
            ITermService termService
            , ICollegeService collegeService
            , IEducationalGroupService educationalGroupService
            , IProfessorService professorService
            , IRoleService roleService
            , IRoleAccessService roleAccessService
            , IAccessService accessService
            , IUserRoleService userRoleService
            , IMappingService mappingService
            , IIndicatorService indicatorService
            , IUniversityLevelMappingService universityLevelMappingService
            , IUserService userService
            , IScheduleService scheduleService


            , IEducationalClassService educationalClassService
            , IStudentEducationalClassService studentEducationalClassService
            , IProfessorScoreService professorScoreService
            , IMappingTypeService mappingTypeService
            , IEducationalGroupScoreService educationalGroupScoreService
            , ILogService logService
            , ILogTypeService logTypeService
            , IServiceUsersMappingService serviceUsersMappingService
            )
        {
            _termService                   = termService;
            _collegeService                = collegeService;
            _educationalGroupService       = educationalGroupService;
            _professorService              = professorService;
            _roleService                   = roleService;
            _roleAccessService             = roleAccessService;
            _accessService                 = accessService;
            _userRoleService               = userRoleService;
            _mappingService                = mappingService;
            _indicatorService              = indicatorService;
            _universityLevelMappingService = universityLevelMappingService;
            _userService                   = userService;
            _scheduleService               = scheduleService;
            _logService                     = logService;
            _logTypeService                 = logTypeService;
            _educationalClassService        = educationalClassService;
            _studentEducationalClassService = studentEducationalClassService;
            _professorScoreService          = professorScoreService;
            _mappingTypeService             = mappingTypeService;
            _educationalGroupScoreService   = educationalGroupScoreService;
            _serviceUsersMappingService     = serviceUsersMappingService;
            //SyncService.RunAll(termService, mappingService, collegeService, educationalGroupService
            //    , professorService, educationalClassService, studentEducationalClassService, professorScoreService
            //    , indicatorService, mappingTypeService, universityLevelMappingService, educationalGroupScoreService
            //    , logService, logTypeService, userService);
            //var lastUpdate = _logService.LastUpdate();
        }
Exemple #5
0
 public StudentEvaluationController(ITermService termService, IEvaluationQuestionService evaluationQuestionService,
                                    IEvaluationAnswerService evaluationAnswerService
                                    , IRoleAccessService roleAccessService
                                    , IUserRoleService userRoleService
                                    , ILogService logService,
                                    IEvaluationTypeService evaluationTypeService
                                    , IStudentEducationalClassService studentEducationalClassService)
 {
     _termService = termService;
     _evaluationQuestionService = evaluationQuestionService;
     _evaluationAnswerService   = evaluationAnswerService;
     _roleAccessService         = roleAccessService;
     _userRoleService           = userRoleService;
     _logService                     = logService;
     _evaluationTypeService          = evaluationTypeService;
     _studentEducationalClassService = studentEducationalClassService;
 }
        public static void Run(IStudentEducationalClassService studentEducationalClassService, ILogService logService, ILogTypeService logTypeService, IUserService userService, User user, string termCode)
        {
            //The order of the execution on the commands is important
            //First-remove
            //Second-addOrUpdate


            //log start
            SyncService.LogSync(logService, logTypeService, userService, user, (int)LogTypeValue.شروع_سینک_دانشجو_کلاس);


            //var remove = SyncRemoveStudentEducationalClass(studentEducationalClassService);

            SyncAddOrUpdateStudentEducationalClass(studentEducationalClassService, logService, logTypeService, userService, user, termCode);

            //var resualt = new ReturnValue
            //{
            //    //Remove = remove,
            //    AddOrUpdate = addOrUpdate
            //};
            //return resualt;
        }
        public static void RunAll(
            ITermService termService,
            IMappingService mappingService,
            ICollegeService collegeService,
            IEducationalGroupService educationalGroupService,
            IProfessorService professorService,
            IEducationalClassService educationalClassService,
            IStudentEducationalClassService studentEducationalClassService,
            IProfessorScoreService professorScoreService,
            IIndicatorService indicatorService,
            IMappingTypeService mappingTypeService,
            IUniversityLevelMappingService universityLevelMappingService,
            IEducationalGroupScoreService educationalGroupScoreService,
            ILogService logService,
            ILogTypeService logTypeService,
            IUserService userService,
            string termCode)
        {
            //The order of the execution on the commands is important


            var user = userService.Get(x => x.Username.ToLower() == "Sync".ToLower());

            if (string.IsNullOrEmpty(termCode))
            {
                termCode = ClientHelper.GetScalarValue <string>(StaticValue.CurrentTerm);
            }



            //TermSync.SyncAddOrUpdateTerms(termService, logService, logTypeService, userService, user);
            //MappingSync.Run(mappingService, logService, logTypeService, userService, user);
            //CollegeSync.Run(collegeService, logService, logTypeService, userService, user);
            //ProfessorSync.SyncAddOrUpdateProfessor(professorService, logService, logTypeService, userService, user, termCode);
            //EducationalGroupSync.SyncAddOrUpdateEducationalGroup(educationalGroupService, logService, logTypeService, userService, user, termCode);
            EducationalClassSync.Run(educationalClassService, logService, logTypeService, userService, user, termCode);
            StudentEducationalClassSync.Run(studentEducationalClassService, logService, logTypeService, userService, user, termCode);

            ProfessorSync.SyncProfessorRemoveScore(professorService, logService, logTypeService, userService, user, termCode);

            ProfessorSync.SyncProfessorAddScore(professorService, professorScoreService, indicatorService, termService,
                                                mappingService, mappingTypeService, educationalClassService, universityLevelMappingService,
                                                logService, logTypeService, userService, user, termCode);

            EducationalGroupSync.SyncEducationalGroupRemoveScore(educationalGroupService
                                                                 , logService, logTypeService, userService, user, termCode);

            EducationalGroupSync.SyncEducationalGroupAddScore(educationalGroupService, educationalGroupScoreService,
                                                              indicatorService, termService, professorService, professorScoreService, educationalClassService
                                                              , logService, logTypeService, userService, user, termCode);


            var groupManagerScores     = indicatorService.Get(w => w.CountOfType == ("g" + (int)IndicatorGroupName.ضریب_مدیر_گروه) && w.IsActive == true).Scores.Select(s => s.Id).ToList();
            var groupmanagerGroupScore = educationalGroupScoreService.GetMany(g => groupManagerScores.Contains(g.Score.Id) && g.Term.TermCode == termCode)
                                         .Select(s => s.EducationalGroup.EducationalGroupCode);
            var groupManagerReCalculateList = educationalGroupService
                                              .GetMany(w => !groupmanagerGroupScore.Contains(w.EducationalGroupCode) && w.Term.TermCode == termCode && w.IsActive == true).ToList();

            if (groupManagerReCalculateList.Count() > 0)
            {
                var professores = ClientHelper.GetValue <ProfessorSyncModel>(StaticValue.ProfessorRelativeAddress + $"/{termCode}");
                var reCalcProfs = professores.Where(w => groupManagerReCalculateList.Where(ww => ww.GroupManger != null).Select(s => s.GroupManger.ProfessorCode).Contains(w.ProfessoreCode)).ToList();
                foreach (var item in reCalcProfs)
                {
                    ProfessorSync.SyncGroupManagerProfessorScores(professorService, professorScoreService, indicatorService, termService, mappingService, mappingTypeService
                                                                  , educationalClassService, universityLevelMappingService, item, logService, logTypeService, userService, user, educationalGroupService);
                }

                var groups       = ClientHelper.GetValue <GroupSyncModel>(StaticValue.GroupRelativeAddress + $"/{termCode}");
                var reCalcGroups = groups.Where(w => groupManagerReCalculateList.Where(ww => ww.GroupManger != null).Select(s => s.EducationalGroupCode).Contains(w.EducationalGroupCode)).ToList();
                foreach (var item in reCalcGroups)
                {
                    EducationalGroupSync.SyncGroupManagerEducationalGroupScores(educationalGroupService, educationalGroupScoreService, indicatorService, termService
                                                                                , professorService, professorScoreService, item, educationalClassService, logService, logTypeService, userService, user);
                }
            }
        }