예제 #1
0
        internal UserDTO LogIn(string username, string password)
        {
            using (var context = new BackendContext())
            {
                var result = context.Users
                             .Include(s => s.Child).Include(s => s.Teacher)
                             .Where(s => s.UserName == username && s.Password == password)
                             .ToList();

                //return result.Count != 0; //si es distinto de 0 true, al contrario false.
                if (result.Count == 0)
                {
                    return(null);
                }
                else
                {
                    return(result[0].Teacher == null ?
                           new UserDTO()
                    {
                        IsTeacher = false,
                        UserName = result[0].UserName,
                        Password = result[0].Password,
                        Id = result[0].Id
                    }
                        : new UserDTO()
                    {
                        IsTeacher = true,
                        UserName = result[0].UserName,
                        Password = result[0].Password,
                        Id = result[0].Id
                    });
                }
            }
        }
예제 #2
0
        internal List <Report> RetriveByTeacher(int id)
        {
            List <Report> reports;

            try
            {
                using (BackendContext context = new BackendContext())
                {
                    reports = context.Teachers
                              .Where(t => t.Id == id)
                              .Include(t => t.TeachersClasrooms)
                              .ThenInclude(tc => tc.Classroom.ChildrenClassrooms)
                              .ThenInclude(cc => cc.Child.Reports)
                              .Select(t => t.TeachersClasrooms.Select(tc => tc.Classroom.ChildrenClassrooms.Select(cc => cc.Child.Reports)))
                              .SingleOrDefault()
                              .Aggregate((acc, ele) => acc.Concat(ele))
                              .Aggregate((acc, ele) => { acc.AddRange(ele); return(acc); })
                              .Distinct().ToList();
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                return(null);
            }

            return(reports);
        }
예제 #3
0
        internal void SaveChild(ChildDTO c)
        {
            using (BackendContext context = new BackendContext())
            {
                User user = new User()
                {
                    UserName = c.UserName,
                    Password = c.Password,
                };

                context.Users.Add(user);
                context.SaveChanges();

                var   id    = context.Users.Where(e => e.UserName == c.UserName).First().Id;
                Child child = new Child()
                {
                    Id      = id,
                    Surname = c.Surname,
                    Name    = c.Name,
                };

                context.Children.Add(child);
                context.SaveChanges();
            }
        }
예제 #4
0
        internal bool AddClassroomToTeacher(int idteacher, int idclass)
        {
            try
            {
                using (BackendContext context = new BackendContext())
                {
                    TeacherClassroom teacherClassroom;

                    teacherClassroom = new TeacherClassroom()
                    {
                        ClassroomId = idclass,
                        TeacherId   = idteacher,
                    };

                    context.TeacherClassrooms.Add(teacherClassroom);
                    context.SaveChanges();
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                return(false);
            }

            return(true);
        }
예제 #5
0
        internal void Save(Report r)
        {
            BackendContext context = new BackendContext();

            context.Reports.Add(r);
            context.SaveChanges();
        }
예제 #6
0
        public List <ClassroomDTO> RetrieveClassrooms()
        {
            List <ClassroomDTO> classrooms;

            try
            {
                using (var context = new BackendContext())
                {
                    classrooms = context.Classrooms
                                 .Select(c => new ClassroomDTO()
                    {
                        Id   = c.Id,
                        Name = c.Name
                    })
                                 .ToList();
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                return(null);
            }

            return(classrooms);
        }
예제 #7
0
        internal List <Child> getChildrenByClass(int id)
        {
            List <Child> children;

            try
            {
                using (var context = new BackendContext())
                {
                    children = context.Classrooms
                               .Where(t => t.Id == id)
                               .Include(t => t.ChildrenClassrooms)
                               .ThenInclude(tc => tc.Child)
                               .Select(t => t.ChildrenClassrooms.Select(cc => cc.Child))
                               .FirstOrDefault()
                               .ToList();
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                return(null);
            }

            return(children);
        }
예제 #8
0
        public List <ClassroomDTO> RetrieveByTeacher(int idTeacher)
        {
            var context = new BackendContext();
            List <ClassroomDTO> classrooms;

            try
            {
                classrooms = context.Teachers
                             .Where(t => t.Id == idTeacher)
                             .Include(t => t.TeachersClasrooms)
                             .ThenInclude(tc => tc.Classroom)
                             .Select(t => t.TeachersClasrooms.Select(tc => tc.Classroom))
                             .FirstOrDefault()
                             .Select(c => new ClassroomDTO()
                {
                    Id   = c.Id,
                    Name = c.Name
                })
                             .ToList();
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                return(null);
            }

            return(classrooms);
        }
예제 #9
0
 internal void SaveClassroom(Classroom classroom)
 {
     using (BackendContext context = new BackendContext())
     {
         context.Classrooms.Add(classroom);
         context.SaveChanges();
     }
 }
예제 #10
0
        internal void Eliminar(ChildClassroom childClassroom)
        {
            using (BackendContext context = new BackendContext())
            {
                var child = context.ChildClassrooms
                            .Where(e => e.ChildId == childClassroom.ChildId && e.ClassroomId == childClassroom.ClassroomId)
                            .FirstOrDefault();

                context.ChildClassrooms.Remove(child);
                context.SaveChanges();
            }
        }
예제 #11
0
        internal void AddClassroomToChild(int idchild, int idclass)
        {
            BackendContext context = new BackendContext();

            ChildClassroom childClassroom = new ChildClassroom()
            {
                ClassroomId = idclass,
                ChildId     = idchild
            };

            context.ChildClassrooms.Add(childClassroom);
            context.SaveChanges();
        }
예제 #12
0
        internal List <Report> RetrieveByChild(int id)
        {
            List <Report> reports = new List <Report>();

            using (BackendContext context = new BackendContext())
            {
                reports = context.Children
                          .Where(s => s.Id == id)
                          .Include(s => s.Reports)
                          .Select(s => s.Reports)
                          .FirstOrDefault();
            }
            return(reports);
        }
예제 #13
0
        internal void deleteChild(int childid)
        {
            using (BackendContext context = new BackendContext())
            {
                var child = context.Children
                            .Where(e => e.Id == childid)
                            .FirstOrDefault();

                var user = context.Users
                           .Where(e => e.Id == childid)
                           .FirstOrDefault();


                context.Children.Remove(child);
                context.Users.Remove(user);
                context.SaveChanges();
            }
        }
예제 #14
0
        internal bool modifyChild(ChildDTO child)
        {
            try
            {
                using (BackendContext context = new BackendContext())
                {
                    context.Users.Single(u => u.Id == child.Id).Password = child.Password;
                    context.SaveChanges();
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                return(false);
            }

            return(true);
        }
예제 #15
0
        internal bool modifyTeacher(TeacherDTO teacher)
        {
            try
            {
                using (BackendContext context = new BackendContext())
                {
                    context.Users.Single(u => u.Id == teacher.Id).Password = teacher.Password;
                    context.SaveChanges();
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
                return(false);
            }

            return(true);
        }
예제 #16
0
        internal List <TeacherDTO> RetrieveAllTeachers()
        {
            List <TeacherDTO> teachers = new List <TeacherDTO>();

            using (BackendContext context = new BackendContext()) {
                teachers = context.Users
                           .Include(s => s.Teacher)
                           .Where(s => s.Teacher != null)
                           .Select(s => new TeacherDTO()
                {
                    Id       = s.Id,
                    Name     = s.Teacher.Name,
                    Surname  = s.Teacher.Surname,
                    UserName = s.UserName,
                    Password = s.Password
                }).ToList();
            }
            return(teachers);
        }
예제 #17
0
        internal List <ChildDTO> RetrieveAllChildren()
        {
            List <ChildDTO> children = new List <ChildDTO>();

            using (BackendContext context = new BackendContext())
            {
                children = context.Users
                           .Include(s => s.Child)
                           .Where(s => s.Child != null)
                           .Select(s => new ChildDTO()
                {
                    Id       = s.Id,
                    Name     = s.Child.Name,
                    Surname  = s.Child.Surname,
                    UserName = s.UserName,
                    Password = s.Password
                }).ToList();
            }
            return(children);
        }
예제 #18
0
        //funciones que devuelvan un teacher y un child según su id.

        internal TeacherDTO RetrieveTeacher(int id)
        {
            TeacherDTO teacher;

            using (var context = new BackendContext()) {
                teacher = context.Users
                          .Include(s => s.Teacher)
                          .Where(s => s.Id == id)
                          .Select(s => new TeacherDTO()
                {
                    Id       = s.Id,
                    Name     = s.Teacher.Name,
                    Surname  = s.Teacher.Surname,
                    UserName = s.UserName,
                    Password = s.Password
                })
                          .FirstOrDefault();
            }

            return(teacher);
        }
예제 #19
0
        internal ChildDTO RetrieveChild(int id)
        {
            ChildDTO child;

            using (var context = new BackendContext())
            {
                child = context.Users
                        .Include(s => s.Child)
                        .Where(s => s.Id == id)
                        .Select(s => new ChildDTO()
                {
                    Id       = s.Id,
                    Name     = s.Child.Name,
                    Surname  = s.Child.Surname,
                    UserName = s.UserName,
                    Password = s.Password
                })
                        .FirstOrDefault();
            }

            return(child);
        }
예제 #20
0
        internal void SaveTeacher(TeacherDTO t)
        {
            BackendContext context = new BackendContext();

            User user = new User()
            {
                UserName = t.UserName,
                Password = t.Password,
            };

            context.Users.Add(user);
            context.SaveChanges();

            var     id      = context.Users.Where(e => e.UserName == t.UserName).First().Id;
            Teacher teacher = new Teacher()
            {
                Id      = id,
                Surname = t.Surname,
                Name    = t.Name,
            };

            context.Teachers.Add(teacher);
            context.SaveChanges();
        }