Ejemplo n.º 1
0
        public async Task <HttpResponseMessage> GetEvalResult([FromUri] EvalMasterBaseReq req)
        {
            var obj = await EvalMasterBE.GetEvalResult(req);

            if (obj != null)
            {
                return(this.OkResult(obj));
            }

            return(this.ErrorResult(new Error(EnumError.EvalMasterNotExist)));
        }
Ejemplo n.º 2
0
        public async Task <EvalMaster> GetPeriodAndEmployee(EvalMasterBaseReq req)
        {
            var obj = await GetAsync(c => c.EvalMasterId == req.EvalMasterId);

            if (obj != null &&
                obj.Any())
            {
                return(obj.FirstOrDefault());
            }

            return(null);
        }
Ejemplo n.º 3
0
        public async Task <bool> CancelFinal(EvalMasterBaseReq req)
        {
            var obj = await GetAsync(c => c.EvalMasterId == req.EvalMasterId);

            if (obj != null &&
                obj.Any())
            {
                var update = obj.FirstOrDefault();
                update.IsFinal = false;
                return(Update(update));
            }

            return(false);
        }
Ejemplo n.º 4
0
        public async Task <List <EvalDetail> > GetEvalDetailByMasterId(EvalMasterBaseReq req)
        {
            if (req == null)
            {
                return(null);
            }
            var obj = await EvalDetailBE.GetAsync(c => c.EvalMasterId == req.EvalMasterId);

            if (obj != null && obj.Any())
            {
                return(obj.ToList());
            }

            return(null);
        }
Ejemplo n.º 5
0
        public async Task <HttpResponseMessage> CancelFinal([FromBody] EvalMasterBaseReq req)
        {
            var evalMaster = await EvalMasterBE.GetById(req);

            if (evalMaster == null)
            {
                return(this.ErrorResult(new Error(EnumError.EvalMasterNotExist)));
            }

            var obj = await EvalMasterBE.CancelFinal(req);

            if (obj)
            {
                return(this.OkResult(obj));
            }

            return(this.ErrorResult(new Error(EnumError.UpdateFaile)));
        }
Ejemplo n.º 6
0
        public async Task <bool> IsAllowEdit(EvalMasterBaseReq req)
        {
            var evalMaster = (from mt in (await GetAsync(p => p.EvalMasterId == req.EvalMasterId))
                              join p in EvalPeriodBE.GetAll() on mt.EvalPeriodId equals p.EvalPeriodId
                              select new { mt.BeEvalEmployeeId, mt.IsFinal, p.ToDate }).FirstOrDefault();

            if (evalMaster == null)
            {
                return(false);
            }
            var printMaster = await GetAsync(p => p.BeEvalEmployeeId == evalMaster.BeEvalEmployeeId &&
                                             p.IsFinal == true);

            if (printMaster.Any())
            {
                return(false);
            }
            if ((evalMaster.IsFinal ?? false) || DateTime.Now > evalMaster.ToDate.CheckDateEx())
            {
                return(false);
            }
            return(true);
        }
Ejemplo n.º 7
0
        public async Task <HttpResponseMessage> CompleteFinal([FromBody] EvalMasterBaseReq req)
        {
            var evalMaster = await EvalMasterBE.GetById(req);

            if (evalMaster == null)
            {
                return(this.ErrorResult(new Error(EnumError.EvalMasterNotExist)));
            }

            var objExits = (await EvalMasterBE.GetAsync(p => p.EvalPeriodId == evalMaster.EvalPeriodId))?.FirstOrDefault();

            if (objExits != null && objExits.EvalMasterId == req.EvalMasterId)
            {
                return(this.ErrorResult(new Error(EnumError.EvalMasterFinalHasExits)));
            }
            var obj = await EvalMasterBE.CompleteFinal(req);

            if (obj)
            {
                return(this.OkResult(obj));
            }

            return(this.ErrorResult(new Error(EnumError.UpdateFaile)));
        }
Ejemplo n.º 8
0
        public async Task <HttpResponseMessage> IsAllowEdit([FromBody] EvalMasterBaseReq req)
        {
            var obj = await EvalMasterBE.IsAllowEdit(req);

            return(this.OkResult(obj));
        }
Ejemplo n.º 9
0
        public async Task <EvalResult> GetEvalResult(EvalMasterBaseReq req)
        {
            if (req == null)
            {
                return(null);
            }
            var evalMaster = await GetById(req);

            if (evalMaster == null)
            {
                return(null);
            }
            var evalPeriod      = _uoW.Context.EvalPeriods.FirstOrDefault(p => p.EvalPeriodId == evalMaster.EvalPeriodId);
            var schoolLevelCode = _uoW.Context.Schools.FirstOrDefault(p => p.SchoolId == evalPeriod.SchoolId)?.SchoolLevelCode;

            var objDetails = from dt in _uoW.Context.EvalDetails
                             join c in _uoW.Context.EvalCriterias on dt.EvalCriteriaId equals c.EvalCriteriaId
                             join r in _uoW.Context.EvalResults on dt.EvalResultCode equals r.EvalResultCode into gr
                             from r in gr.DefaultIfEmpty()
                             where dt.EvalMasterId == req.EvalMasterId
                             select new { c.EvalCriteriaCode, r.EvalResultCode, r.Idx };
            var result = "";

            if (evalPeriod.EvalTypeCode == EnumEvalType.Primary)
            {
                if (schoolLevelCode == EnumSchoolLevel.PrimarySchool)
                {
                    // EXC
                    if (objDetails.Where(p => p.Idx > 1).Count() == objDetails.Count() &&
                        objDetails.Where(p => p.Idx > 1).Count() / objDetails.Count() >= 2 / 3 &&
                        (objDetails.Where(p => p.Idx == 3 &&
                                          "TC1,TC2,TC4,TC5,TC6,TC8,TC10,TC12,TC13,TC14".Contains(p.EvalCriteriaCode)).Count() > 9))
                    {
                        result = EnumEvalResult.Tot;
                    }
                    // Khá
                    else if (objDetails.Where(p => p.Idx > 0).Count() == objDetails.Count() &&
                             objDetails.Where(p => p.Idx > 0).Count() / objDetails.Count() >= 2 / 3 &&
                             (objDetails.Where(p => p.Idx > 1 &&
                                               "TC1,TC2,TC4,TC5,TC6,TC8,TC10,TC12,TC13,TC14".Contains(p.EvalCriteriaCode)).Count() > 9))
                    {
                        result = EnumEvalResult.Kha;
                    }
                    // Khá
                    else if (objDetails.Where(p => p.Idx > 0).Count() == objDetails.Count() &&
                             objDetails.Where(p => p.Idx > 0).Count() / objDetails.Count() >= 2 / 3 &&
                             (objDetails.Where(p => p.Idx > 0 &&
                                               "TC1,TC2,TC4,TC5,TC6,TC8,TC10,TC12,TC13,TC14".Contains(p.EvalCriteriaCode)).Count() > 9))
                    {
                        result = EnumEvalResult.Dat;
                    }
                    else
                    {
                        result = EnumEvalResult.KhongDat;
                    }
                }
                else if (schoolLevelCode == EnumSchoolLevel.PresSchool)
                {
                    // EXC
                    if (objDetails.Where(p => p.Idx > 1).Count() == objDetails.Count() &&
                        objDetails.Where(p => p.Idx > 1).Count() / objDetails.Count() >= 2 / 3 &&
                        (objDetails.Where(p => p.Idx == 3 &&
                                          "TC1,TC2,TC4,TC5,TC6,TC8,TC10,TC12,TC13,TC14".Contains(p.EvalCriteriaCode)).Count() > 9))
                    {
                        result = EnumEvalResult.Tot;
                    }
                    // Khá
                    else if (objDetails.Where(p => p.Idx > 0).Count() == objDetails.Count() &&
                             objDetails.Where(p => p.Idx > 0).Count() / objDetails.Count() >= 2 / 3 &&
                             (objDetails.Where(p => p.Idx > 1 &&
                                               "TC1,TC2,TC4,TC5,TC6,TC8,TC10,TC12,TC13,TC14".Contains(p.EvalCriteriaCode)).Count() > 9))
                    {
                        result = EnumEvalResult.Kha;
                    }
                    // Khá
                    else if (objDetails.Where(p => p.Idx > 0).Count() == objDetails.Count() &&
                             objDetails.Where(p => p.Idx > 0).Count() / objDetails.Count() >= 2 / 3 &&
                             (objDetails.Where(p => p.Idx > 0 &&
                                               "TC1,TC2,TC4,TC5,TC6,TC8,TC10,TC12,TC13,TC14".Contains(p.EvalCriteriaCode)).Count() > 9))
                    {
                        result = EnumEvalResult.Dat;
                    }
                    else
                    {
                        result = EnumEvalResult.KhongDat;
                    }
                }
                else if (schoolLevelCode == EnumSchoolLevel.JuniorHighSchool)
                {
                    // EXC
                    if (objDetails.Where(p => p.Idx > 1).Count() == objDetails.Count() &&
                        objDetails.Where(p => p.Idx > 1).Count() / objDetails.Count() >= 2 / 3 &&
                        (objDetails.Where(p => p.Idx == 3 &&
                                          "TC1,TC2,TC4,TC5,TC6,TC8,TC10,TC12,TC13,TC14".Contains(p.EvalCriteriaCode)).Count() > 9))
                    {
                        result = EnumEvalResult.Tot;
                    }
                    // Khá
                    else if (objDetails.Where(p => p.Idx > 0).Count() == objDetails.Count() &&
                             objDetails.Where(p => p.Idx > 0).Count() / objDetails.Count() >= 2 / 3 &&
                             (objDetails.Where(p => p.Idx > 1 &&
                                               "TC1,TC2,TC4,TC5,TC6,TC8,TC10,TC12,TC13,TC14".Contains(p.EvalCriteriaCode)).Count() > 9))
                    {
                        result = EnumEvalResult.Kha;
                    }
                    // Khá
                    else if (objDetails.Where(p => p.Idx > 0).Count() == objDetails.Count() &&
                             objDetails.Where(p => p.Idx > 0).Count() / objDetails.Count() >= 2 / 3 &&
                             (objDetails.Where(p => p.Idx > 0 &&
                                               "TC1,TC2,TC4,TC5,TC6,TC8,TC10,TC12,TC13,TC14".Contains(p.EvalCriteriaCode)).Count() > 9))
                    {
                        result = EnumEvalResult.Dat;
                    }
                    else
                    {
                        result = EnumEvalResult.KhongDat;
                    }
                }
                if (schoolLevelCode == EnumSchoolLevel.HighSchool)
                {
                    // EXC
                    if (objDetails.Where(p => p.Idx > 1).Count() == objDetails.Count() &&
                        objDetails.Where(p => p.Idx > 1).Count() / objDetails.Count() >= 2 / 3 &&
                        (objDetails.Where(p => p.Idx == 3 &&
                                          "TC1,TC2,TC4,TC5,TC6,TC8,TC10,TC12,TC13,TC14".Contains(p.EvalCriteriaCode)).Count() > 9))
                    {
                        result = EnumEvalResult.Tot;
                    }
                    // Khá
                    else if (objDetails.Where(p => p.Idx > 0).Count() == objDetails.Count() &&
                             objDetails.Where(p => p.Idx > 0).Count() / objDetails.Count() >= 2 / 3 &&
                             (objDetails.Where(p => p.Idx > 1 &&
                                               "TC1,TC2,TC4,TC5,TC6,TC8,TC10,TC12,TC13,TC14".Contains(p.EvalCriteriaCode)).Count() > 9))
                    {
                        result = EnumEvalResult.Kha;
                    }
                    // Khá
                    else if (objDetails.Where(p => p.Idx > 0).Count() == objDetails.Count() &&
                             objDetails.Where(p => p.Idx > 0).Count() / objDetails.Count() >= 2 / 3 &&
                             (objDetails.Where(p => p.Idx > 0 &&
                                               "TC1,TC2,TC4,TC5,TC6,TC8,TC10,TC12,TC13,TC14".Contains(p.EvalCriteriaCode)).Count() > 9))
                    {
                        result = EnumEvalResult.Dat;
                    }
                    else
                    {
                        result = EnumEvalResult.KhongDat;
                    }
                }
            }
            else if (evalPeriod.EvalTypeCode == EnumEvalType.Teacher)
            {
                if (schoolLevelCode == EnumSchoolLevel.PrimarySchool)
                {
                    // EXC
                    if (objDetails.Where(p => p.Idx > 1).Count() == objDetails.Count() &&
                        objDetails.Where(p => p.Idx > 1).Count() / objDetails.Count() >= 2 / 3 &&
                        (objDetails.Where(p => p.Idx == 3 &&
                                          "TC1,TC2,TC4,TC5,TC6,TC8,TC10,TC12,TC13,TC14".Contains(p.EvalCriteriaCode)).Count() > 9))
                    {
                        result = EnumEvalResult.Tot;
                    }
                    // Khá
                    else if (objDetails.Where(p => p.Idx > 0).Count() == objDetails.Count() &&
                             objDetails.Where(p => p.Idx > 0).Count() / objDetails.Count() >= 2 / 3 &&
                             (objDetails.Where(p => p.Idx > 1 &&
                                               "TC1,TC2,TC4,TC5,TC6,TC8,TC10,TC12,TC13,TC14".Contains(p.EvalCriteriaCode)).Count() > 9))
                    {
                        result = EnumEvalResult.Kha;
                    }
                    // Đạt
                    else if (objDetails.Where(p => p.Idx > 0).Count() == objDetails.Count())
                    {
                        result = EnumEvalResult.Dat;
                    }
                    else
                    {
                        result = EnumEvalResult.KhongDat;
                    }
                }
                else if (schoolLevelCode == EnumSchoolLevel.PresSchool)
                {
                    // EXC
                    if (objDetails.Where(p => p.Idx > 1).Count() == objDetails.Count() &&
                        objDetails.Where(p => p.Idx > 1).Count() / objDetails.Count() >= 2 / 3 &&
                        (objDetails.Where(p => p.Idx == 3 &&
                                          "TC1,TC2,TC4,TC5,TC6,TC8,TC10,TC12,TC13,TC14".Contains(p.EvalCriteriaCode)).Count() > 9))
                    {
                        result = EnumEvalResult.Tot;
                    }
                    // Khá
                    else if (objDetails.Where(p => p.Idx > 0).Count() == objDetails.Count() &&
                             objDetails.Where(p => p.Idx > 0).Count() / objDetails.Count() >= 2 / 3 &&
                             (objDetails.Where(p => p.Idx > 1 &&
                                               "TC1,TC2,TC4,TC5,TC6,TC8,TC10,TC12,TC13,TC14".Contains(p.EvalCriteriaCode)).Count() > 9))
                    {
                        result = EnumEvalResult.Kha;
                    }
                    // Đạt
                    else if (objDetails.Where(p => p.Idx > 0).Count() == objDetails.Count())
                    {
                        result = EnumEvalResult.Dat;
                    }
                    else
                    {
                        result = EnumEvalResult.KhongDat;
                    }
                }
                else if (schoolLevelCode == EnumSchoolLevel.JuniorHighSchool)
                {
                    // EXC
                    if (objDetails.Where(p => p.Idx > 1).Count() == objDetails.Count() &&
                        objDetails.Where(p => p.Idx > 1).Count() / objDetails.Count() >= 2 / 3 &&
                        (objDetails.Where(p => p.Idx == 3 &&
                                          "TC1,TC2,TC4,TC5,TC6,TC8,TC10,TC12,TC13,TC14".Contains(p.EvalCriteriaCode)).Count() > 9))
                    {
                        result = EnumEvalResult.Tot;
                    }
                    // Khá
                    else if (objDetails.Where(p => p.Idx > 0).Count() == objDetails.Count() &&
                             objDetails.Where(p => p.Idx > 0).Count() / objDetails.Count() >= 2 / 3 &&
                             (objDetails.Where(p => p.Idx > 1 &&
                                               "TC1,TC2,TC4,TC5,TC6,TC8,TC10,TC12,TC13,TC14".Contains(p.EvalCriteriaCode)).Count() > 9))
                    {
                        result = EnumEvalResult.Kha;
                    }
                    // Đạt
                    else if (objDetails.Where(p => p.Idx > 0).Count() == objDetails.Count())
                    {
                        result = EnumEvalResult.Dat;
                    }
                    else
                    {
                        result = EnumEvalResult.KhongDat;
                    }
                }
                else if (schoolLevelCode == EnumSchoolLevel.HighSchool)
                {
                    // EXC
                    if (objDetails.Where(p => p.Idx > 1).Count() == objDetails.Count() &&
                        objDetails.Where(p => p.Idx > 1).Count() / objDetails.Count() >= 2 / 3 &&
                        (objDetails.Where(p => p.Idx == 3 &&
                                          "TC1,TC2,TC4,TC5,TC6,TC8,TC10,TC12,TC13,TC14".Contains(p.EvalCriteriaCode)).Count() > 9))
                    {
                        result = EnumEvalResult.Tot;
                    }
                    // Khá
                    else if (objDetails.Where(p => p.Idx > 0).Count() == objDetails.Count() &&
                             objDetails.Where(p => p.Idx > 0).Count() / objDetails.Count() >= 2 / 3 &&
                             (objDetails.Where(p => p.Idx > 1 &&
                                               "TC1,TC2,TC4,TC5,TC6,TC8,TC10,TC12,TC13,TC14".Contains(p.EvalCriteriaCode)).Count() > 9))
                    {
                        result = EnumEvalResult.Kha;
                    }
                    // Đạt
                    else if (objDetails.Where(p => p.Idx > 0).Count() == objDetails.Count())
                    {
                        result = EnumEvalResult.Dat;
                    }
                    else
                    {
                        result = EnumEvalResult.KhongDat;
                    }
                }
            }

            return(_uoW.Context.EvalResults.FirstOrDefault(p => p.EvalResultCode == result));
        }