public ExpiredDto IsEvaluationExpired(Int32 programmingID, int evaluationID)
        {
            bool active = true;
            List <EvaluationExpirationListDto> expires = new List <EvaluationExpirationListDto>();

            expires = this.evaluationExpirationRepository.GetByprogrammingIDByactive(programmingID, active).Where(e => e.evaluationID == evaluationID).ToList();

            bool   isExpired      = true;
            string expiredMessage = "";
            string expiredAfter   = "";
            bool   isAboutExpired = false;

            if (expires.Count() == 0)
            {
                isExpired      = true;
                expiredMessage = "La carga de notas para esta evaluación aún no está disponible.";
                expiredAfter   = "Cerrado";
            }
            else
            {
                int i = expires.Where(e => DateTime.Now.Date <e.startDate || DateTime.Now.Date> e.endDate).Count();
                if (i > 0)
                {
                    EvaluationExpirationListDto evaluationExpired = new EvaluationExpirationListDto();
                    evaluationExpired = expires.ElementAt(0);

                    if (evaluationExpired != null)
                    {
                        expiredMessage = "La carga de notas para esta evaluación estuvo disponible desde el " + evaluationExpired.startDateShow + " hasta el " + evaluationExpired.endDateShow + ".";
                        expiredAfter   = "Cerrado";
                    }

                    isExpired = true;
                }
                else
                {
                    EvaluationExpirationListDto evaluationExpired = new EvaluationExpirationListDto();
                    evaluationExpired = expires.ElementAt(0);
                    isExpired         = false;
                    expiredMessage    = "La carga de notas para esta evaluación se cerrará el " + evaluationExpired.endDateShow + ".";
                    expiredAfter      = "Faltan " + TimerAgo.TimeAfter(expires.ElementAt(0).endDate.AddDays(1));
                    isAboutExpired    = ValidAboutExpired(expires.ElementAt(0).endDate.AddDays(1));
                }
            }

            ExpiredDto expired = new ExpiredDto();

            expired.isExpired      = isExpired;
            expired.expiredAfter   = expiredAfter;
            expired.expiredMessage = expiredMessage;
            expired.isAboutExpired = isAboutExpired;

            return(expired);
        }
        public Object GetEvaluations(Int32 evaluationFormulaID, Int32 schoolID, Boolean active, Int32 programmingID, int teacherTypeID)
        {
            try
            {
                BaseResponseDto <EvaluationListDto> baseResponseDto = new BaseResponseDto <EvaluationListDto>();
                List <EvaluationListDto>            evaluationDto   = this.evaluationRepository.GetEvaluations(evaluationFormulaID, schoolID, active, teacherTypeID);

                foreach (EvaluationListDto evaluationListDto in evaluationDto)
                {
                    ExpiredDto expired = new ExpiredDto();
                    expired = IsEvaluationExpired(programmingID, evaluationListDto.evaluationID);

                    evaluationListDto.isExpired      = true;
                    evaluationListDto.ExpiredMessage = "";
                    evaluationListDto.ExpiredAfter   = "";


                    if (expired != null)
                    {
                        evaluationListDto.isExpired      = expired.isExpired;
                        evaluationListDto.ExpiredMessage = expired.expiredMessage;

                        if (expired.isExpired)
                        {
                            evaluationListDto.ExpiredAfter = expired.expiredAfter;
                        }
                        else
                        {
                            if (expired.isAboutExpired)
                            {
                                evaluationListDto.ExpiredAfter = expired.expiredAfter;
                            }
                        }

                        evaluationListDto.isAboutExpired = expired.isAboutExpired;
                    }
                    else
                    {
                        evaluationListDto.ExpiredAfter = expired.expiredAfter;
                    }
                }

                baseResponseDto.Data = evaluationDto;
                return(baseResponseDto);
            }
            catch (Exception ex)
            {
                return(this.getExceptionErrorResponse2(ex.Message));
            }
        }