Пример #1
0
        public StudentsApi GetStudent(int id)
        {
            //On créé une nouvelle instance de StudentsApi avec lequel on va travailler
            StudentsApi  StudentApi = new StudentsApi();
            EnrollmentVM EnrApi     = new EnrollmentVM();

            //On récupère le student en fonction de l'id entré en paramètre
            Student aStudent = db.Students.Find(id);

            //On remplit le viewmodel avec les données du student
            StudentApi.id             = aStudent.ID;
            StudentApi.lastname       = aStudent.LastName;
            StudentApi.firstname      = aStudent.FirstMidName;
            StudentApi.enrollmentdate = aStudent.EnrollmentDate;

            //On créé une variable pour récupérer  le nombre d'enrollments du student
            var cpt = aStudent.Enrollments.Count();

            //On créé un nouveau tableau pour stocker les informations qu'on va récupérer ensuite
            EnrollmentVM[] aEnrollments = new EnrollmentVM[cpt];

            for (int i = 0; i < cpt; i++)
            {
                //On récupère les données dont on a besoin et on les rajoute au tableau précédemment créé
                aEnrollments[i] = new EnrollmentVM {
                    courseId = aStudent.Enrollments.ElementAt(i).CourseID
                };
            }

            StudentApi.enrollments = aEnrollments;

            //On retourne l'objet pour l'affichage
            return(StudentApi);
        }
Пример #2
0
        public IEnumerable <StudentsApi> getStudents(int username)
        {
            //JSONObject
            List <StudentsApi> students = new List <StudentsApi>();
            StudentsApi        student  = new StudentsApi();

            DateTime today            = DateTime.Now;
            int      currentDayOfWeek = (int)today.DayOfWeek;
            DateTime sunday           = today.AddDays(-currentDayOfWeek);
            DateTime monday           = sunday.AddDays(1);

            //DateTime mon = monday.Date.ToString("dd/MM/YYYY");
            if (currentDayOfWeek == 0)
            {
                monday = monday.AddDays(-7);
            }
            var      dates = Enumerable.Range(0, 7).Select(days => monday.AddDays(days)).ToList();
            DateTime start = dates[0].Date;
            DateTime end   = dates[6].Date;

            var student_name = db.Students.Where(s => s.StudentId == username).Select(a => new { a.StudentName, a.secid }).Single();

            var data = (from a in db.vschedules
                        join
                        s in db.Students on a.secid equals s.secid
                        where ((a.startdate >= start && a.startdate <= end) ||
                               (a.enddate >= start && a.enddate <= end) || (a.startdate <= start && a.enddate >= end)) &&
                        a.flag == true &&
                        a.secid == student_name.secid &&
                        s.StudentId == username
                        orderby a.secid, a.slottypeid, a.occupied
                        select new { a, s }).ToList();

            DateTime date = new DateTime();

            foreach (var item in data)
            {
                foreach (var d in dates)
                {
                    if ((int)d.DayOfWeek == item.a.dayid)
                    {
                        date = d.Date;
                    }
                }
                students.Add(new StudentsApi
                {
                    StudentName = item.s.StudentName,
                    sectionname = item.a.sectionname,
                    course      = item.a.title,
                    teacher     = item.a.teachername,
                    roomno      = item.a.roomno,
                    campus      = item.a.campus,
                    //dayname = DateTime.Now.StartOfWeek(item.a.dayid).ToString("MM/dd/yyyy"),
                    dayname   = date.ToString("dddd-dd/MMMM"),
                    duration  = item.a.duration,
                    dateOrder = date
                });
            }
            return(students.ToArray().OrderBy(a => a.dateOrder));
        }