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"));
        }
Example #2
0
        public List <FacebookGroup> GetGroupName(string accesstoken)
        {
            List <FacebookGroup> lstGroupName = new List <FacebookGroup>();


            try
            {
                FacebookClient fb = new FacebookClient();
                fb.AccessToken = accesstoken;
                dynamic groups = fb.Get("me/groups");

                foreach (var item in groups["data"])
                {
                    try
                    {
                        FacebookGroup objFacebookGroup = new FacebookGroup();

                        objFacebookGroup.Name    = item["name"].ToString();
                        objFacebookGroup.GroupId = item["id"].ToString();

                        lstGroupName.Add(objFacebookGroup);
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex.StackTrace);
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.StackTrace);
            }

            return(lstGroupName);
        }
        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);
        }
 /// <AddFacebookGroup>
 /// Add New Facebook Group
 /// </summary>
 /// <param name="group">Set Values in a FacebookGroup Class Property and Pass the same Object of FacebookGroup Class as a parameter (SocioBoard.Domain.FacebookGroup).</param>
 public void AddFacebookGroup(FacebookGroup group)
 {
     //Creates a database connection and opens up a session
     using (NHibernate.ISession session = SessionFactory.GetNewSession())
     {
         //Begin session trasaction and opens up.
         using (NHibernate.ITransaction transaction = session.BeginTransaction())
         {
             //Proceed action, to save new facebook Group.
             session.Save(group);
             transaction.Commit();
         } //End trsaction
     }     //End session
 }
Example #5
0
        //public List<FacebookGroup> GetFacebookUserGroup(dynamic group, dynamic profile,string token)
        //{
        //    List<FacebookGroup> temp = new List<FacebookGroup>();
        //    List<FacebookGroup> lstfacebookgroup1 = new List<FacebookGroup>();
        //    FacebookGroup objfacegroup = new FacebookGroup();
        //    User user = (User)HttpContext.Current.Session["LoggedUser"];
        //    FacebookFeedRepository fbfeedrepo = new FacebookFeedRepository();

        //    if (group != null)
        //    {
        //        foreach (var result in group["data"])
        //        {
        //            objfacegroup.GroupiId = result["id"];
        //            temp.Add(objfacegroup);
        //        }
        //        foreach (var result in temp)
        //        {
        //            result.GroupiId
        //        }

        //    }
        //}

        //Saving FacebookGroups of user into database i.e. FacebookGroups table
        public void GetFacebookGroups(dynamic group, dynamic profile)
        {
            FacebookGroup           fbgroup     = new FacebookGroup();
            User                    user        = (User)HttpContext.Current.Session["LoggedUser"];
            FacebookGroupRepository fbgrouprepo = new FacebookGroupRepository();

            if (group != null)
            {
                try
                {
                    fbgroup.Id = Guid.NewGuid();
                }
                catch (Exception ex)
                { Console.WriteLine(ex.StackTrace); }

                try
                {
                    fbgroup.UserId = user.Id;
                }
                catch (Exception ex)
                { Console.WriteLine(ex.StackTrace); }

                try
                {
                    fbgroup.ProfileId = profile["id"].ToString();
                }
                catch (Exception ex)
                { Console.WriteLine(ex.StackTrace); }

                fbgroup.GroupId     = group["id"];
                fbgroup.Icon        = group["icon"];
                fbgroup.Cover       = "";
                fbgroup.Owner       = group["owner"]["name"];
                fbgroup.Name        = group["name"];
                fbgroup.Description = group["description"];
                fbgroup.Link        = group["link"];
                fbgroup.Privacy     = group["privacy"];
                fbgroup.UpdatedTime = Convert.ToDateTime(group["updated_time"]);
                fbgroup.EntryDate   = DateTime.Now;



                if (!fbgrouprepo.checkFacebookGroupExists(fbgroup.GroupId.ToString(), fbgroup.ProfileId.ToString()))
                {
                    fbgrouprepo.AddFacebookGroup(fbgroup);
                }
            }
        }
        public static List <FacebookGroup> GetFacebookGroups(string accessToken)
        {
            var lstAddFacebookGroup = new List <FacebookGroup>();
            var fb = new FacebookClient {
                AccessToken = accessToken
            };

            if (accessToken == null)
            {
                return(lstAddFacebookGroup);
            }

            try
            {
                dynamic output = fb.Get($"{FbConstants.FacebookApiVersion}/me/groups");
                foreach (var item in output["data"])
                {
                    try
                    {
                        var objAddFacebookGroup =
                            new FacebookGroup
                        {
                            ProfileGroupId = item["id"].ToString(),
                            Name           = item["name"].ToString(),
                            AccessToken    = accessToken
                        };
                        lstAddFacebookGroup.Add(objAddFacebookGroup);
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex.StackTrace);
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.StackTrace);
                return(null);
            }
            return(lstAddFacebookGroup);
        }
 public SitemapGroupViewModel(FacebookGroup group, IEnumerable<FileInfo> posts) {
   Group = group;
   Posts = posts;
 }
    /*==========================================================================================================================
    | METHOD: GET GROUPS (ASYNCHRONOUS)
    \-------------------------------------------------------------------------------------------------------------------------*/
    /// <summary>
    ///   Populates the collection with a list of <see cref="SkeptiForum.Archive.FacebookGroup"/> objects based on a query to the 
    ///   Facebook API.
    /// </summary>
    /// <param name="publicOnly">
    ///   Determines if only public groups should be listed. Set to false to load closed and private groups; be aware that this 
    ///   may introduce potential privacy concerns if also loading posts. Optionally overrides the value set for the collection.
    /// </param>
    /// <param name="filter">
    ///   Sets the filter to use in evaluating whether or not to include a group in the collection. This is intended to exclude 
    ///   groups not affiliated with the Skepti-Forum project. Optionally overrides the value set for the collection.
    /// </param>
    /// <returns>A collection of dynamic objects, each representing the JSON response from the Facebook Graph API.</returns>
    public override async Task<Collection<dynamic>> GetGroupsAsync(bool? publicOnly = null, string filter = null) {

      /*------------------------------------------------------------------------------------------------------------------------
      | Establish defaults
      \-----------------------------------------------------------------------------------------------------------------------*/
      string fields = ArchiveManager.Configuration?.Queries?.Groups?.Fields ?? "id,name,privacy";
      int limit = ArchiveManager.Configuration?.Queries?.Groups?.Limit ?? 750;

      publicOnly = publicOnly ?? ArchiveManager.Configuration?.Queries?.Groups?.PublicOnly ?? true;
      filter = filter ?? ArchiveManager.Configuration?.Queries?.Groups?.Filter ?? "Skepti-Forum";

      /*------------------------------------------------------------------------------------------------------------------------
      | Establish variables
      \-----------------------------------------------------------------------------------------------------------------------*/
      dynamic groupCollection = new Collection<dynamic>();
      dynamic groupResults = await GetClient().GetTaskAsync("me/groups?limit=" + limit + "&fields=" + fields);

      /*------------------------------------------------------------------------------------------------------------------------
      | Loop through each group and add it to the collection
      \-----------------------------------------------------------------------------------------------------------------------*/
      foreach (dynamic group in groupResults.data) {
        if (!String.IsNullOrEmpty(filter) && !group.name.Contains(filter)) continue;
        if (publicOnly == true && !group.privacy.Equals("open", StringComparison.InvariantCultureIgnoreCase)) continue;
        FacebookGroup facebookGroup = new FacebookGroup(group);
        groupCollection.Add(facebookGroup);
      }

      return groupCollection;
    }