예제 #1
0
        public ApiResult <List <Class> > GetAllClassByTeacherId(ClassSeachModel seachModel)
        {
            var r       = new ApiResult <List <Class> >();
            var classes = new List <Class>();
            var q       = (from c in RCSContext.Classes
                           where c.TeacherId == seachModel.TeacherId
                           join s in RCSContext.Studyings on c.Id equals s.ClassId into s1
                           from s in s1.DefaultIfEmpty()
                           join sj in RCSContext.Subjects on c.SubjectId equals sj.Id into sj1
                           from sj in sj1.DefaultIfEmpty()
                           join cs in RCSContext.ClassSchedules on c.Id equals cs.ClassId into cs1
                           from cs in cs1.DefaultIfEmpty()
                           select new { c, cs, sj, s }).AsQueryable();

            if (seachModel.Date != null)
            {
                DateTime startDate = seachModel.Date.Value.Date;
                DateTime endDate   = seachModel.Date.Value.Date.AddDays(1).AddTicks(-1);
                q = q.Where(t => t.cs.Datetime >= startDate && t.cs.Datetime <= endDate).AsQueryable();
            }
            classes = q.ToList().Select(t => t.c).Distinct().ToList();
            classes.ForEach(c =>
            {
                c.Studyings.ForEach(s =>
                {
                    s.Class = null;
                });
                c.Subject.Classes = null;
                c.ClassSchedules.ForEach(cs =>
                {
                    cs.Class = null;
                });
            });
            r.Data      = classes;
            r.IsSuccess = true;
            return(r);
        }
 public ApiResult <List <Class> > GetAllClassByTeacherId(ClassSeachModel seachModel)
 {
     return(RCSService.GetAllClassByTeacherId(seachModel));
 }