Beispiel #1
0
        public Result <IEnumerable <CourseRemain> > CalculateQuantity(IEnumerable <Lesson> unconfirmedLessons, IEnumerable <CourseRemain> lr)
        {
            IEnumerable <CourseRemain> result = new CourseRemain[] {};
            var lessonWithTerm = TermFilter(unconfirmedLessons);
            var returnResult   = new Result <IEnumerable <CourseRemain> >();

            if (!lessonWithTerm.IsSuccess)
            {
                returnResult.IsSuccess    = false;
                returnResult.ErrorMessage = lessonWithTerm.ErrorMessage;
                returnResult.ErrorCode    = lessonWithTerm.ErrorCode;
                return(returnResult);
            }

            var unconfiremedLesson = lessonWithTerm.Data;

            var lessonRemains = lr;

            foreach (var lessonRemain in lessonRemains)
            {
                var unconfirm = 0;
                if (lessonRemain.CourseInstanceId != null)
                {
                    unconfirm = unconfiremedLesson
                                .Where(c => c.TermId == lessonRemain.TermId)
                                .Count(c => c.CourseInstanceId == lessonRemain.CourseInstanceId);
                }
                else
                {
                    unconfirm = unconfiremedLesson
                                .Where(c => c.TermId == lessonRemain.TermId)
                                .Count(c => c.GroupCourseInstanceId == lessonRemain.GroupCourseInstanceId);
                }

                lessonRemain.Quantity         = lessonRemain.Quantity - unconfirm;
                lessonRemain.Term.Invoice     = null;
                lessonRemain.UnconfirmLessons = unconfirm;
                //var appendResult = _mapper.Map<CourseRemain, LessonRemainWithUnfonfirmLessons>(lessonRemain);
                //appendResult.UnconfirmLessons = unconfirm;

                result = result.Append(lessonRemain);
            }

            returnResult.IsSuccess = true;
            returnResult.Data      = result;
            return(returnResult);
        }
Beispiel #2
0
        public Result <IEnumerable <CourseRemain> > GetRemainLesson(int studentId)
        {
            var result = new Result <IEnumerable <CourseRemain> >();
            IEnumerable <LessonRemain> remainLessons;
            IEnumerable <CourseRemain> returnResults = new CourseRemain[] {};

            try
            {
                remainLessons = _context.LessonRemain.Where(lr => lr.LearnerId == studentId)
                                .Include(lr => lr.Term)

                                .Include(lr => lr.CourseInstance)
                                .ThenInclude(o2o => o2o.Course)
                                .Include(lr => lr.GroupCourseInstance)
                                .ThenInclude(gci => gci.Course);
                //var returnResult = _mapper.Map<IEnumerable<CourseRemain>>(remainLessons);
                foreach (var instance in remainLessons)
                {
                    var returnResult = _mapper.Map <CourseRemain>(instance);
                    returnResult.CourseName = instance.CourseInstanceId != null
                        ? instance.CourseInstance.Course
                                              .CourseName
                        : instance.GroupCourseInstance.Course.CourseName;
                    returnResult.Term.LessonRemain = null;
                    returnResult.Term.Invoice      = null;
                    returnResults = returnResults.Append(returnResult);
                }
            }
            catch (Exception ex)
            {
                result.IsSuccess    = false;
                result.ErrorMessage = ex.Message;
                return(result);
            }

            result.IsSuccess = true;

            result.Data = returnResults;
            return(result);
        }