Exemplo n.º 1
0
        private static Hometask GetHometaskById(int hometaskId)
        {
            using (SqlConnection connection = GetConnection())
            {
                SqlCommand sqlCommand = new SqlCommand($@"SELECT * 
                                                         FROM Hometask
                                                         WHERE Id = {hometaskId}",
                                                       connection);
                Hometask hometask = new Hometask();
                using (var reader = sqlCommand.ExecuteReader())
                {
                    while (reader.Read())
                    {
                        hometask.Id          = reader.GetInt32(0);
                        hometask.Date        = reader.GetDateTime(1);
                        hometask.Title       = reader.GetString(2);
                        hometask.Description = reader.GetString(3);
                        hometask.Number      = reader.GetInt16(4);

                        int courseId = reader.GetInt32(5);
                        hometask.Course = GetCourseById(courseId);
                    }
                }

                return(hometask);
            }
        }
Exemplo n.º 2
0
        public static List <Hometask> GetAllHometasks()
        {
            using (SqlConnection connection = GetConnection())
            {
                SqlCommand sqlCommand = new SqlCommand(@"SELECT * FROM HomeTask",
                                                       connection);
                List <Hometask> hometasks = new List <Hometask>();
                using (var reader = sqlCommand.ExecuteReader())
                {
                    while (reader.Read())
                    {
                        Hometask hometask = new Hometask();
                        hometask.Id          = reader.GetInt32(0);
                        hometask.Date        = reader.GetDateTime(1);
                        hometask.Title       = reader.GetString(2);
                        hometask.Description = reader.GetString(3);
                        hometask.Number      = reader.GetInt16(4);

                        int courseId = reader.GetInt32(5);
                        hometask.Course = GetCourseById(courseId);

                        hometasks.Add(hometask);
                    }
                }

                return(hometasks);
            }
        }
Exemplo n.º 3
0
        private XElement GetHometaskXmlPresentation(Hometask hometask)
        {
            XElement hometaskElement = new XElement("hometask", new XAttribute("id", hometask.Id),
                                                    new XAttribute("name", hometask.Name),
                                                    new XAttribute("description", hometask.Description),
                                                    new XAttribute("date", hometask.Date.GetDate()),
                                                    new XAttribute("serial-number", hometask.SerialNumber)
                                                    );

            XElement course = new XElement("course");

            course.Add(new XElement("course", new XAttribute("id", hometask.Course.Id),
                                    new XAttribute("name", hometask.Course.Name))
                       );

            XElement hometaskMarksList = new XElement("hometask-marks");

            foreach (var mark in hometask.HomeworkMarks)
            {
                hometaskMarksList.Add(new XElement("mark", new XAttribute("id", mark.Id),
                                                   new XAttribute("done", mark.Done))
                                      );
            }

            hometaskElement.Add(course);
            hometaskElement.Add(hometaskMarksList);

            return(hometaskElement);
        }
Exemplo n.º 4
0
 /// <summary>
 /// Запись домашнего задания.
 /// </summary>
 /// <param name="hometask">Домашнее задание.</param>
 /// <returns>Ответ от сервера.</returns>
 public HttpResponseMessage PostHometasks(Hometask hometask)
 {
     using (var client = createClient(_accessToken))
     {
         var response = client.PostAsJsonAsync(_appPath + "/api/Hometasks", hometask).Result;
         return(response);
     }
 }
Exemplo n.º 5
0
        public void SummarizeHometask_Test()
        {
            var hometask = new Hometask
            {
                Description = "Exercises 8, 9, 10",
                DueDate     = DateTime.Now.AddMinutes(10),
                Id          = 3,
                Subject     = "InfoTech"
            };

            Assert.AreEqual(hometask.ToString(), TextBuilder.Summarize(hometask));
        }
Exemplo n.º 6
0
        private List <Hometask> GetHometasksFromNode(XElement hometasksNode)
        {
            List <Hometask> hometasks = new List <Hometask>();

            foreach (var hometask in hometasksNode.Elements())
            {
                Hometask importHometask = new Hometask
                {
                    Id           = Convert.ToInt32(hometask.Attribute("id").Value),
                    Name         = hometask.Attribute("name").Value,
                    Description  = hometask.Attribute("description").Value,
                    Date         = hometask.Attribute("date").Value.GetDate(),
                    SerialNumber = Convert.ToInt32(hometask.Attribute("serial-number").Value)
                };
                hometasks.Add(importHometask);
            }

            return(hometasks);
        }
Exemplo n.º 7
0
        /// <summary>
        /// Запись домашнего задания.
        /// </summary>
        /// <param name="error">Ошибка.</param>
        /// <param name="lesson">Предмет.</param>
        /// <param name="value">Текст домашнего задания.</param>
        /// <returns></returns>
        public HttpStatusCode PostHometask(out string error, Hometask hometask)
        {
            error = "";

            HttpResponseMessage response = null;

            try
            {
                response = _database.PostHometasks(hometask);
            }
            catch (WebException ex)
            {
                error = _errorDisconnect;
                return(HttpStatusCode.BadGateway);
            }
            if (response.StatusCode != HttpStatusCode.OK)
            {
                error = getErrorMessage(response);
                return(response.StatusCode);
            }

            return(response.StatusCode);
        }
Exemplo n.º 8
0
        private Academy GetAcademyObjectModelFromXml(XDocument document)
        {
            Academy  academy     = new Academy();
            XElement academyNode = document.Elements().First();

            XElement      coursesNode = academyNode.Descendants("courses-list").FirstOrDefault();
            List <Course> courses     = GetCoursesFromNode(coursesNode);

            XElement        lecturersNode = academyNode.Descendants("lecturers-list").FirstOrDefault();
            List <Lecturer> lecturers     = GetLecturersFromNode(lecturersNode);

            XElement       studentsNode = academyNode.Descendants("students-list").FirstOrDefault();
            List <Student> students     = GetStudentsFromNode(studentsNode);

            XElement        hometasksNode = academyNode.Descendants("hometasks-list").FirstOrDefault();
            List <Hometask> hometasks     = GetHometasksFromNode(hometasksNode);

            XElement            hometasksMarksNode = academyNode.Descendants("hometasks-marks-list").FirstOrDefault();
            List <HometaskMark> hometasksMarks     = GetHometasksMarksFromNode(hometasksMarksNode);

            List <KeyValuePair <int, int> > bindingCoursesLecturersDictionary = GetBindingDictionaryById(coursesNode, "lecturers");
            List <KeyValuePair <int, int> > bindingCoursesStudentsDictionary  = GetBindingDictionaryById(coursesNode, "students");
            List <KeyValuePair <int, int> > bindingCoursesHometasksDictionary = GetBindingDictionaryById(coursesNode, "hometasks");

            List <KeyValuePair <int, int> > bindingStudentsMarksDictionary  = GetBindingDictionaryById(studentsNode, "hometask-marks");
            List <KeyValuePair <int, int> > bindingMarksHometasksDictionary = GetBindingDictionaryById(hometasksMarksNode, "hometask");
            List <KeyValuePair <int, int> > bindingMarksCoursesDictionary   = GetBindingDictionaryById(hometasksMarksNode, "course");

            // courses and lecturers binding
            foreach (var courseLecturer in bindingCoursesLecturersDictionary)
            {
                Course   course   = courses.Where(n => n.Id == courseLecturer.Key).First();
                Lecturer lecturer = lecturers.Where(n => n.Id == courseLecturer.Value).First();

                course.Lecturers.Add(lecturer);
                lecturer.Courses.Add(course);
            }

            // courses and students binding
            foreach (var courseStudent in bindingCoursesStudentsDictionary)
            {
                Course  course  = courses.Where(n => n.Id == courseStudent.Key).First();
                Student student = students.Where(n => n.Id == courseStudent.Value).First();

                course.Students.Add(student);
                student.Courses.Add(course);
            }

            // courses and hometasks binding
            foreach (var courseHometask in bindingCoursesHometasksDictionary)
            {
                Course   course   = courses.Where(n => n.Id == courseHometask.Key).First();
                Hometask hometask = hometasks.Where(n => n.Id == courseHometask.Value).First();

                course.Hometasks.Add(hometask);
                hometask.Course = course;;
            }

            // staudents and marks binding
            foreach (var studentMark in bindingStudentsMarksDictionary)
            {
                Student      student = students.Where(n => n.Id == studentMark.Key).First();
                HometaskMark mark    = hometasksMarks.Where(n => n.Id == studentMark.Value).First();

                student.Marks.Add(mark);
            }

            // marks and hometasks binding
            foreach (var markHometask in bindingMarksHometasksDictionary)
            {
                HometaskMark mark     = hometasksMarks.Where(n => n.Id == markHometask.Key).First();
                Hometask     hometask = hometasks.Where(n => n.Id == markHometask.Value).First();

                mark.Hometask = hometask;
                hometask.HomeworkMarks.Add(mark);
            }

            // marks and courses binding
            foreach (var markHometask in bindingMarksCoursesDictionary)
            {
                HometaskMark mark   = hometasksMarks.Where(n => n.Id == markHometask.Key).First();
                Course       course = courses.Where(n => n.Id == markHometask.Value).First();

                mark.Course = course;
            }

            academy.Courses        = courses;
            academy.Lecturers      = lecturers;
            academy.Students       = students;
            academy.Hometasks      = hometasks;
            academy.HometasksMarks = hometasksMarks;

            return(academy);
        }
Exemplo n.º 9
0
        protected override void Seed(Context context)
        {
            //  This method will be called after migrating to the latest version.

            //  You can use the DbSet<T>.AddOrUpdate() helper extension method
            //  to avoid creating duplicate seed data. E.g.
            //
            //    context.People.AddOrUpdate(
            //      p => p.FullName,
            //      new Person { FullName = "Andrew Peters" },
            //      new Person { FullName = "Brice Lambson" },
            //      new Person { FullName = "Rowan Miller" }
            //    );
            //

            var hometasks = new Hometask[]
            {
                new Hometask
                {
                    Description = "Exercises 1, 2, 3",
                    DueDate     = DateTime.Now.AddDays(-1),
                    Id          = 1,
                    Subject     = "IELTS"
                },
                new Hometask
                {
                    Description = "Exercises 5, 6, 7",
                    DueDate     = DateTime.Now.AddDays(1),
                    Id          = 2,
                    Subject     = "Economics"
                },
                new Hometask
                {
                    Description = "Exercises 8, 9, 10",
                    DueDate     = DateTime.Now.AddMinutes(10),
                    Id          = 3,
                    Subject     = "InfoTech"
                }
            };

            var deadlines = new Deadline[]
            {
                new Deadline
                {
                    Description = "Complete the survey",
                    DueDate     = DateTime.Now.AddDays(-1),
                    Id          = 1,
                    Subject     = "Statistics"
                },
                new Deadline
                {
                    Description = "Design a database",
                    DueDate     = DateTime.Now.AddDays(1),
                    Id          = 2,
                    Subject     = "Data management"
                },
                new Deadline
                {
                    Description = "Essay #1",
                    DueDate     = DateTime.Now.AddDays(-1),
                    Id          = 1,
                    Subject     = "Enterprise Architecture"
                }
            };

            var users = new User[]
            {
                new User
                {
                    FullName = "Sergey Pavlov",
                    ChatId   = 99999999
                },
                new User
                {
                    FullName = "Igor Tresoumov",
                    ChatId   = 1
                }
            };

            context.Deadlines.AddOrUpdate(d => d.Description, deadlines[0], deadlines[1], deadlines[2]);
            context.Hometasks.AddOrUpdate(h => h.Description, hometasks);
            context.Users.AddOrUpdate(u => u.ChatId, users);
        }
Exemplo n.º 10
0
 public async Task AddHometask(Hometask hometask)
 {
     _db.Hometasks.Add(hometask);
     await _db.SaveChangesAsync();
 }