public static List <FacebookGroupPost> getGroupFeed(string groupId, FacebookAuth givenAuth = null)
        {
            string requestString = groupId + "/feed?fields=permalink_url,description,message,from,comments{message,from}";

            requestString += "&access_token=" + givenAuth.accessToken;
            FacebookGroup group = new FacebookGroup();

            using (var db = new ClassroomContext())
            {
                group = db.FacebookGroups.Where(x => x.id == groupId).SingleOrDefault();
            }
            string resultRaw  = fireGetRequest(requestString);
            JToken resultJson = JObject.Parse(resultRaw)["data"];
            List <FacebookGroupPost> result = JsonConvert.DeserializeObject <List <FacebookGroupPost> >(resultJson.ToString());

            result.ForEach(x =>
            {
                x.comments    = new List <FacebookComment>();
                x.parentGroup = group;
            });
            foreach (JToken post in JObject.Parse(resultRaw)["data"])
            {
                if (post["comments"] != null)
                {
                    foreach (JToken comment in post["comments"]["data"])
                    {
                        FacebookComment newComment = JsonConvert.DeserializeObject <FacebookComment>(comment.ToString());
                        result.Where(x => x.id == post["id"].ToString()).ToList().ForEach(x => x.comments.Add(newComment));
                    }
                }
            }

            return(result);
        }
        public IActionResult saveGroupToRoom(int roomId, string groupset, string groupid)
        {
            using (var db = new ClassroomContext())
            {
                if (groupset.ToLower() == "facebook")
                {
                    var faceGroup = new FacebookGroup();
                    var fb        = new FacebookConnector(HttpContext.Session);
                    var fbGroups  = fb.getGroups();
                    faceGroup             = fbGroups.Where(x => x.id == groupid).FirstOrDefault();
                    faceGroup.ClassroomId = roomId;
                    if (db.FacebookGroups.Where(x => x.id == groupid && x.ClassroomId == roomId).Count() == 0)
                    {
                        db.FacebookAuthSet.Update(faceGroup.parentAuth);
                        db.FacebookGroups.Add(faceGroup);
                    }
                    else
                    {
                        db.FacebookGroups.Remove(db.FacebookGroups.Where(x => x.id == groupid && x.ClassroomId == roomId).First());
                    }
                }

                db.SaveChanges();
            }
            return(Content("success"));
        }
        public IActionResult listGroupsBySource()
        {
            var result = new SerializeableGroupList();

            using (var db = new ClassroomContext())
            {
                var fb          = new FacebookConnector(HttpContext.Session);
                var facebookSet = new SerializableGroupSet();
                facebookSet.Name = "Facebook";
                var fbGroups = fb.getGroups();
                fbGroups.ForEach(x =>
                {
                    var group  = new SerializeableSingleGroup();
                    group.Name = x.name;
                    group.Id   = x.id;
                    if (db.FacebookGroups.Where(y => y.id == x.id).Count() != 0)
                    {
                        group.isAdded = true;
                    }
                    else
                    {
                        group.isAdded = false;
                    }
                    facebookSet.Groups.Add(group);
                });
                result.Groups.Add(facebookSet);
            }
            return(Json(result));
        }
Exemple #4
0
 public IActionResult Index(int id)
 {
     using (var db = new ClassroomContext())
     {
         return(View(db.Classrooms.Find(id)));
     }
 }
 public IActionResult ClassRooms()
 {
     using (var db = new ClassroomContext())
     {
         return(View(db.Classrooms.ToList()));
     }
 }
Exemple #6
0
        public IActionResult Users(string role, int id, bool adding = true)
        {
            String      search          = Request.Query["search[value]"];
            List <User> allUsers        = new List <Models.User>();
            int         recordsTotal    = 0;
            int         recordsFiltered = 0;

            using (var db = new ClassroomContext())
            {
                if (!string.IsNullOrEmpty(search))
                {
                    allUsers = db.Users.Where(u => (u.Username.Contains(search) || u.Firstname.Contains(search) || u.Lastname.Contains(search) || u.Schoolname.Contains(search))).Include(u => u.UserRole).ToList <User>();
                }
                else
                {
                    allUsers = db.Users.Include(u => u.UserRole).Include(u => u.StudentClassrooms)
                               .ToList <User>();
                }
                allUsers.ForEach(
                    u => u.UserRole.ForEach(
                        ur => db.Entry(ur)
                        .Reference(r => r.Role).Load()));

                if (!string.IsNullOrEmpty(role))
                {
                    allUsers.RemoveAll(u => u.UserRole.Where(ur => ur.Role.Slug.ToLower() == role).Count() == 0);
                }
                if (id != 0)
                {
                    if (adding == true)
                    {
                        allUsers.RemoveAll(u => u.StudentClassrooms.Where(sc => sc.ClassroomId == id).Count() > 0);
                    }
                    else
                    {
                        allUsers.RemoveAll(u => u.StudentClassrooms.Where(sc => sc.ClassroomId == id).Count() == 0);
                    }
                }
                recordsTotal    = db.Users.Count();
                recordsFiltered = allUsers.Count();
            }
            var data = new List <Object>();

            allUsers.ForEach(u =>
            {
                var user = new List <String>();

                user.Add(u.Id.ToString());
                user.Add(u.Username);
                user.Add(u.Address);
                user.Add(u.City);

                data.Add(user);
            });

            return(Json(new { data, recordsTotal, recordsFiltered }));
        }
        public IActionResult docdata(string id)
        {
            using (var db = new ClassroomContext())
            {
                var doc = db.Documents.Find(id);

                return(Json(doc));
            }
        }
        public IActionResult Roles()
        {
            List <Role> allRoles = new List <Models.Role>();

            using (var db = new ClassroomContext())
            {
                allRoles = db.Roles.ToList <Role>();
            }
            return(View(allRoles));
        }
        public static void syncGroups()
        {
            using (var db = new ClassroomContext())
            {
                var em                      = new ElasticManager();
                var finishedGroups          = new List <string>();
                List <FacebookGroup> groups = db.FacebookGroups
                                              //.Include(x => x.posts)
                                              //    .ThenInclude(post => post.comments)
                                              //.Include(x => x.posts)
                                              .Include(x => x.parentAuth)
                                              .ToList();
                foreach (FacebookGroup group in groups)
                {
                    if (!finishedGroups.Contains(group.id))
                    {
                        try
                        {
                            List <FacebookGroupPost> posts = getGroupFeed(group.id, group.parentAuth);

                            db.FacebookGroupPosts.RemoveRange(db.FacebookGroupPosts.ToList());
                            db.SaveChanges();

                            var extantDocs = db.Documents.Where(x => x.ExternalParentId == group.id);

                            db.Documents.RemoveRange(extantDocs);

                            foreach (var post in posts)
                            {
                                var convertedDoc = convertToDocument(post);

                                if (convertedDoc != null)
                                {
                                    db.Documents.Add(convertToDocument(post));
                                }
                            }
                            db.SaveChanges();

                            db.FacebookGroupPosts.AddRange(posts);
                            db.SaveChanges();
                            finishedGroups.Add(group.id);
                        }
                        catch (Exception ex)
                        {
                            //swallow
                        }
                    }

                    var docPosts = db.Documents.Where(x => x.ExternalParentId == group.id).ToList();
                    docPosts.ForEach(x => x.Id = x.ExternalId);
                    em.addManyDocuments(docPosts);
                }
                //em.fill();
            }
        }
 public FacebookConnector(ISession session)
 {
     using (var db = new ClassroomContext())
     {
         int?currentId = session.GetInt32(EnumStrings.currentuser);
         if (currentId != null)
         {
             currentUser = db.FacebookAuthSet.Where(x => x.UserId == currentId).FirstOrDefault();
         }
     }
 }
        public IActionResult Index()
        {
            List <Classroom> result = new List <Classroom>();
            int?userId = HttpContext.Session.GetInt32(EnumStrings.currentuser);

            using (var db = new ClassroomContext())
            {
                result = db.Classrooms.Where(x => x.StudentClassrooms.Where(y => y.UserId == userId).Count() > 0 || x.OwnerId == userId).ToList();
            }
            return(View(result));
        }
Exemple #12
0
 public IActionResult removeUserFromClassroom(int id, int userId)
 {
     using (var db = new ClassroomContext())
     {
         UserClassrooms uc = new UserClassrooms();
         uc = db.StudentClassrooms.Where(sc => sc.UserId == userId && sc.ClassroomId == id).Single();
         db.StudentClassrooms.Remove(uc);
         db.SaveChanges();
     }
     return(Json("fakjea"));
 }
 public IActionResult NewRole(int?id)
 {
     if (id != null)
     {
         using (var db = new ClassroomContext())
         {
             return(View(db.Roles.Single(r => r.Id == id)));
         }
     }
     return(View(new Role()));
 }
        public IActionResult docdatasave(Document data)
        {
            using (var db = new ClassroomContext())
            {
                db.Update(data);
                db.SaveChanges();
                ElasticManager em = new ElasticManager();
                em.addDocument(data);
            }

            return(Content("success"));
        }
Exemple #15
0
 public IActionResult addUserToClassroom(int id, int userId)
 {
     using (var db = new ClassroomContext())
     {
         UserClassrooms uc = new UserClassrooms();
         uc.ClassroomId = id;
         uc.UserId      = userId;
         db.StudentClassrooms.Add(uc);
         db.SaveChanges();
     }
     return(Json("fakjea"));
 }
 public static bool login(string username, string password, ISession session)
 {
     using (var db = new ClassroomContext())
     {
         User checkingUser = db.Users.Where(u => (u.Username == username || u.Email == username) && u.Password == password).SingleOrDefault();
         if (checkingUser != null)
         {
             session.SetInt32("currentuser", checkingUser.Id);
             return(true);
         }
     }
     return(false);
 }
Exemple #17
0
 public ClassroomUnitOfWork(
     ClassroomContext context,
     IStudentRepository studentRepository,
     ICourseRepository courseRepository,
     IGradeRepository gradeRepository,
     IUserRepository userRepository
     ) : base(context)
 {
     Students = studentRepository;
     Courses  = courseRepository;
     Grades   = gradeRepository;
     Users    = userRepository;
 }
 public static int register(User newUser, string confpassword)
 {
     if (isRegistrable(newUser.Username, newUser.Email, newUser.Password, confpassword))
     {
         using (var db = new ClassroomContext())
         {
             db.Users.Add(newUser);
             db.SaveChanges();
             return(newUser.Id);
         }
     }
     return(0);
 }
 public IActionResult NewClassroom(int id)
 {
     {
         using (var db = new ClassroomContext())
         {
             if (id != 0)
             {
                 var classroom = db.Classrooms.Single(r => r.Id == id);
                 return(View(classroom));
             }
         }
     }
     return(View(new Classroom()));
 }
        public void fill()
        {
            using (var db = new ClassroomContext())
            {
                if (Client.IndexExists("classroom.search").Exists)
                {
                    Client.DeleteIndex("classroom.search");
                    createIndex();
                }

                var result = Client.IndexMany(db.Documents.ToList());
                result = Client.IndexMany(db.FacebookGroupPosts.ToList());
            }
        }
        public IActionResult Users()
        {
            List <User> allUsers = new List <Models.User>();

            using (var db = new ClassroomContext())
            {
                allUsers = db.Users.Include(u => u.UserRole)
                           .ToList <User>();
                allUsers.ForEach(
                    u => u.UserRole.ForEach(
                        ur => db.Entry(ur)
                        .Reference(r => r.Role).Load()));
            }
            return(View(allUsers));
        }
        public IActionResult SaveNewClassroom(Classroom newRoom)
        {
            var db = new ClassroomContext();

            newRoom.OwnerId = SecurityHelper.currentUserId(HttpContext.Session);
            if (newRoom.Id == 0)
            {
                db.Classrooms.Add(newRoom);
            }
            else
            {
                db.Classrooms.Update(newRoom);
            }
            db.SaveChanges();
            return(Redirect(Url.Action("NewClassroom", "Admin") + "/" + newRoom.Id));
        }
        public IActionResult Groups()
        {
            FacebookConnector        fb     = new FacebookConnector(HttpContext.Session);
            List <FacebookGroup>     groups = fb.getGroups();
            List <FacebookGroupPost> posts  = fb.getGroupFeed("302929356816829");

            using (var db = new ClassroomContext())
            {
                db.FacebookGroupPosts.UpdateRange(posts);
                db.SaveChanges();
            }

            List <Document> documents = new List <Document>();


            return(View());
        }
 public static int register(string username, string email, string password, string confpassword)
 {
     if (isRegistrable(username, email, password, confpassword))
     {
         using (var db = new ClassroomContext())
         {
             User newUser = new User();
             newUser.Username = username;
             newUser.Email    = email;
             newUser.Password = password;
             db.Users.Add(newUser);
             db.SaveChanges();
             return(newUser.Id);
         }
     }
     return(0);
 }
 public IActionResult NewUser(int?id)
 {
     using (var db = new ClassroomContext())
     {
         ViewData["roles"] = db.Roles.ToList();
     }
     if (id != null)
     {
         using (var db = new ClassroomContext())
         {
             var user = db.Users.Include(u => u.UserRole).Single(r => r.Id == id);
             user.UserRole.ForEach(u => db.Entry(u).Reference(ur => ur.Role).Load());
             return(View(user));
         }
     }
     return(View(new User()));
 }
 public static bool isRegistrable(string username, string email, string password, string confpassword)
 {
     if (password != confpassword)
     {
         return(false);
     }
     using (var db = new ClassroomContext())
     {
         if (db.Users.Where(u => (u.Username == username || u.Email == username)).Count() > 0)
         {
             return(false);
         }
         else
         {
             return(true);
         }
     }
 }
        public IActionResult NewRoleSave(int?id)
        {
            Role role = new Role();

            using (var db = new ClassroomContext())
            {
                if (id != null)
                {
                    role = db.Roles.Single(r => r.Id == id);
                }
                else
                {
                    db.Roles.Add(role);
                }
                role.Name        = Request.Form["role_name"];
                role.Description = Request.Form["description"];
                db.SaveChanges();
            }
            return(Redirect("roles"));
        }
        public IActionResult NewUserSave(User user)
        {
            if (!SecurityHelper.isRegistrable(user.Username, user.Email, user.Password, Request.Form["confpassword"]))
            {
                return(Redirect("/classroom/admin/newuser"));
            }
            using (var db = new ClassroomContext())
            {
                if (user.Id == 0)
                {
                    db.Users.Add(user);
                }
                else
                {
                    db.Users.Update(user);
                }
                db.SaveChanges();
                var roles = db.Roles;

                List <string> roleCodes = new List <string>();
                roleCodes.AddRange(Request.Form["roles"].ToString().Split(',').ToList());

                List <Role>     resultRoles   = roles.Where(r => roleCodes.Where(x => x.ToLower() == r.Slug.ToLower()).Count() > 0).ToList();
                List <UserRole> existingRoles = db.UserRoles.Where(ur => ur.UserId == user.Id).ToList();
                db.UserRoles.RemoveRange(existingRoles);

                foreach (Role role in resultRoles)
                {
                    UserRole userRole = new UserRole();
                    userRole.User = user;
                    userRole.Role = role;

                    db.UserRoles.Add(userRole);
                }
                db.SaveChanges();
            }
            return(Redirect("users"));
        }
Exemple #29
0
        public IActionResult saveAuthObject(FacebookAuth auth)
        {
            int?    userId = HttpContext.Session.GetInt32("currentuser");
            dynamic stringResponse;

            if (userId != null)
            {
                using (var db = new ClassroomContext())
                {
                    using (var client = new HttpClient())
                    {
                        client.BaseAddress = new Uri("https://graph.facebook.com/v2.9/");
                        HttpResponseMessage response = client.GetAsync("oauth/access_token?grant_type=fb_exchange_token&client_id=" + Environment.GetEnvironmentVariable("FACEBOOK_APP_ID") + @"&client_secret=" + Environment.GetEnvironmentVariable("FACEBOOK_APP_SECRET") + @"&fb_exchange_token=" + auth.accessToken).Result;
                        response.EnsureSuccessStatusCode(); // Throw in not success

                        stringResponse = JsonConvert.DeserializeObject <dynamic>(response.Content.ReadAsStringAsync().Result);
                    }

                    User currentUser = db.Users.Find(userId);
                    int? currAuth    = db.FacebookAuthSet.Where(x => x.facebookUserId == auth.facebookUserId).Select(x => x.Id).SingleOrDefault();
                    auth.accessToken = stringResponse.access_token.ToString();
                    if (currAuth != 0)
                    {
                        auth.Id = (int)currAuth;
                        db.FacebookAuthSet.Update(auth);
                    }
                    else
                    {
                        db.FacebookAuthSet.Add(auth);
                    }
                    auth.User = currentUser;
                    db.SaveChanges();
                }
            }
            return(Content("success"));
        }
 public StudentsModel(ClassroomContext classroom)
 {
     db = classroom;
 }