Пример #1
0
        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();
            }
        }
Пример #2
0
 public void OnPost(int todoId, string updatedText)
 {
     todos = db.ToDo.ToList();
     foreach (var item in todos)
     {
         if (item.Id == todoId)
         {
             item.text = updatedText;
             break;
         }
     }
     db.SaveChanges();
 }
Пример #3
0
        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"));
        }
Пример #4
0
        public void OnPost(string name, string email, string password)
        {
            var newPerson = new Individual {
                fullname = name, email = email, password = password
            };

            db.Person.Add(newPerson);
            db.SaveChanges();
            Response.Redirect("/People");
        }
Пример #5
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"));
 }
Пример #6
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 IActionResult docdatasave(Document data)
        {
            using (var db = new ClassroomContext())
            {
                db.Update(data);
                db.SaveChanges();
                ElasticManager em = new ElasticManager();
                em.addDocument(data);
            }

            return(Content("success"));
        }
Пример #8
0
        public void OnPost(string content)
        {
            var newPost = new BoardPost {
                userId   = (int)HttpContext.Session.GetInt32("userId"),
                content  = content,
                postedOn = DateTime.Now
            };

            db.BoardPosts.Add(newPost);
            db.SaveChanges();
            OnGet();
        }
Пример #9
0
 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);
 }
Пример #10
0
        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"));
        }
Пример #11
0
        public void OnPost(string text)
        {
            if (text.Length > 50)
            {
                text = text.Substring(0, 50);
            }

            var item = new ToDoItem {
                text = text
            };

            db.ToDo.Add(item);
            db.SaveChanges();
            Response.Redirect("/");
        }
Пример #12
0
        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));
        }
Пример #13
0
        public bool OnPost()
        {
            string action   = Request.Form["action"];
            string username = Request.Form["username"];
            string password = Request.Form["password"];

            if (username.Length > 50)
            {
                username = username.Substring(0, 50);
            }
            if (password.Length > 50)
            {
                password = password.Substring(0, 50);
            }

            switch (action)
            {
            case "login":
                try {
                    var user = db.BoardUsers.Where(
                        u => u.username == username &&
                        u.password == password
                        ).Single();
                    loginSuccessful(user);
                    return(true);
                } catch {
                    return(false);
                }

            case "register":
                try {
                    var newUser = new BoardUser {
                        username = username,
                        password = password,
                    };
                    db.BoardUsers.Add(newUser);
                    db.SaveChanges();
                    loginSuccessful(newUser);
                    return(true);
                } catch {
                    return(false);
                }

            default:
                return(false);
            }
        }
Пример #14
0
        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());
        }
Пример #15
0
 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);
 }
Пример #16
0
        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"));
        }
Пример #17
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 IActionResult UploadDocuments(IFormFile file)
        {
            Stream   fileBuffer = file.OpenReadStream();
            var      db         = new ClassroomContext();
            Document doc        = new Document();

            doc.KeyName  = WebUtility.UrlEncode(file.FileName);
            doc.FileName = file.FileName;

            if (file.ContentType.Contains("image"))
            {
                Stream fileBuffer2 = new MemoryStream();
                fileBuffer.CopyTo(fileBuffer2);
                fileBuffer.Seek(0, SeekOrigin.Begin);
                IReadOnlyList <EntityAnnotation> resultText = GoogleMLConnector.ReadImageText(fileBuffer);

                fileBuffer = fileBuffer2;
                fileBuffer.Seek(0, SeekOrigin.Begin);

                IReadOnlyList <EntityAnnotation> resultLabels = GoogleMLConnector.LabelImage(fileBuffer);
                string lang    = "";
                string content = "";
                foreach (var thing in resultText)
                {
                    if (thing.Locale != null)
                    {
                        lang = thing.Locale;
                    }
                    content += thing.Description;
                }

                doc.Content = content;
                content     = "";

                foreach (var thing in resultLabels)
                {
                    content += thing.Description + ", ";
                }
                doc.GoogleTags = content;

                fileBuffer = fileBuffer2;
            }
            else if (textValues.Contains <string>(file.ContentType))
            {
                StreamReader reader = new StreamReader(fileBuffer);
                doc.Content = reader.ReadToEnd();
            }
            else if (file.ContentType.ToLower().Contains("pdf"))
            {
                string           cont               = "";
                PdfFixedDocument pdfdoc             = new PdfFixedDocument(fileBuffer);
                List <PdfVisualImageCollection> img = new List <PdfVisualImageCollection>();
                foreach (PdfPage page in pdfdoc.Pages)
                {
                    PdfContentExtractor ce = new PdfContentExtractor(page);
                    cont += ce.ExtractText();
                    //img.Add(ce.ExtractImages(true));
                }
                doc.Content = cont;
            }
            else
            {
                StreamReader reader = new StreamReader(fileBuffer);
                doc.Content = reader.ReadToEnd();
            }
            var uploadResult = S3Connector.UploadObject(file.FileName, fileBuffer, WebUtility.UrlEncode(file.FileName));

            if (db.Documents.Where(x => x.KeyName == doc.KeyName).Count() == 0)
            {
                db.Documents.Add(doc);
                db.SaveChanges();
                ElasticManager em = new ElasticManager();
                em.addDocument(doc);
            }

            return(Content(doc.Id.ToString()));
        }