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)); }