Пример #1
0
        public List <List <List <Day> > > GetAttendances(string link)
        {
            var calendarList = new List <List <List <Day> > >();
            var documentList = new List <HtmlDocument>();
            var data         = RequestData.GetData(_httpClient, link, ResponseType.MonthlyView, "Attendance");

            var htmlDocument = new HtmlDocument();

            htmlDocument.LoadHtml(data.Result);

            var form      = new AttendanceForm(htmlDocument);
            var monthKeys = form.MonthKeys();

            foreach (var key in monthKeys)
            {
                var body     = form.GenerateFormBody(key);
                var response = RequestData.GetDataWithBody(_httpClient, link, ResponseType.MonthlyView, body,
                                                           "Attendance");
                var doc = new HtmlDocument();
                doc.LoadHtml(response.Result);
                documentList.Add(doc);
            }

            foreach (var document in documentList)
            {
                var calendar        = new List <List <Day> >();
                var attendanceTable = document.GetElementbyId("plnMain_cldAttendance");
                var weeks           = attendanceTable.ChildNodes.ToList();
                weeks.RemoveRange(0, 3);
                weeks.RemoveRange(weeks.Count - 2, 2);
                foreach (var week in weeks)
                {
                    var calendarWeek = new List <Day>();
                    foreach (var(item, index) in week.ChildNodes.WithIndex())
                    {
                        if (!int.TryParse(item.InnerText, out var date))
                        {
                            break;
                        }

                        var attendances = new List <AttendanceRecord>();
                        var dayAttrs    = item.Attributes;
                        if (dayAttrs.Contains("title"))
                        {
                            var records = dayAttrs["title"].Value;
                            foreach (var line in new LineReader(() => new StringReader(records)))
                            {
                                if (attendances[^ 1].Reason == null)
Пример #2
0
 /// <summary>
 /// Method that open a window based on who press the button of a course (ModifyCourse for the admin, Attendace for the Faculty, Incoming assesment for the Student)
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void label_Click(object sender, System.EventArgs e)
 {
     if (status == "Admin")
     {
         ButtonClass        b         = sender as ButtonClass;
         Course             c         = b.course;
         ModifyCourseWindow modifyWin = new ModifyCourseWindow(connection, c);
         modifyWin.Show();
     }
     else if (status == "Teacher")
     {
         ButtonClass    b          = sender as ButtonClass;
         Course         c          = b.course;
         AttendanceForm attendance = new AttendanceForm(connection, c);
         attendance.Show();
     }
     else if (status == "Student")
     {
         ButtonClass      b     = sender as ButtonClass;
         Course           c     = b.course;
         String           query = " SELECT * FROM grade WHERE studentID='" + user.ID + "' AND Subject ='" + c.name + "'";
         DataTable        dt    = new DataTable();
         MySqlDataAdapter SDA   = new MySqlDataAdapter(query, connection);
         SDA.Fill(dt);
         string assesment = "";
         for (int i = 0; i < dt.Rows.Count; i++)
         {
             DateTime date = Convert.ToDateTime(dt.Rows[i]["Date"].ToString());
             assesment += date.ToString("yyyy-MM-dd") + ": " + dt.Rows[i]["AssesmentName"].ToString() + "\n";
         }
         if (assesment == "")
         {
             assesment = "There is no assesment yet in this subject.";
         }
         MessageBox.Show(assesment);
     }
 }
 internal void FormClosing(AttendanceForm attendanceForm)
 {
     MainCoordinator.Instance.OpenForm(new TeacherChooseSchoolClassForm(), attendanceForm);
 }