Example #1
0
        public async Task<IEnumerable<string>> GetInactiveModeratedSubreddits() {
            var userManager = HttpContext.Current.GetOwinContext().GetUserManager<ApplicationUserManager>();
            var ident = userManager.FindByName( User.Identity.Name );
            if ( ident.TokenExpires < DateTime.UtcNow ) {
                Utilities.AuthUtils.GetNewToken( ident );
                userManager.Update( ident );
            }
            Utilities.SNWebAgent agent = new Utilities.SNWebAgent( ident.AccessToken );
            RedditSharp.Reddit rd = new RedditSharp.Reddit( agent, true );

            List<Models.Subreddit> activeSubs = await subBLL.GetActiveSubs();
            List<string> activeSubNames = activeSubs.Select( s => s.SubName.ToLower() ).ToList();

            var subs = rd.User.ModeratorSubreddits.Where( s => s.ModPermissions.HasFlag( RedditSharp.ModeratorPermission.All ) && !activeSubNames.Contains( s.Name.ToLower() ) ).Select( s => s.Name );
            return subs.OrderBy( s => s );
        }
Example #2
0
        // GET: api/ToolBoxNotes/5

        public IEnumerable <RedditSharp.TBUserNote> Get(string id)
        {
            var userManager = Request.GetOwinContext().GetUserManager <ApplicationUserManager>();

            if (!(User as ClaimsPrincipal).HasClaim("urn:snoonotes:subreddits:" + id.ToLower() + ":admin", "true"))
            {
                throw new Exception("Not an admin of this subreddit"); //TODO Fix exception type
            }
            var user = userManager.FindByName(User.Identity.Name);

            if (user.TokenExpires < DateTime.UtcNow)
            {
                Utilities.AuthUtils.GetNewToken(user);
            }
            Utilities.SNWebAgent agent = new Utilities.SNWebAgent(user.AccessToken);
            var notes = RedditSharp.ToolBoxUserNotes.GetUserNotes(agent, id);

            return(notes);
        }
Example #3
0
        public async Task <IEnumerable <string> > GetInactiveModeratedSubreddits()
        {
            var userManager = HttpContext.Current.GetOwinContext().GetUserManager <ApplicationUserManager>();
            var ident       = userManager.FindByName(User.Identity.Name);

            if (ident.TokenExpires < DateTime.UtcNow)
            {
                Utilities.AuthUtils.GetNewToken(ident);
                userManager.Update(ident);
            }
            Utilities.SNWebAgent agent = new Utilities.SNWebAgent(ident.AccessToken);
            RedditSharp.Reddit   rd    = new RedditSharp.Reddit(agent, true);

            List <Models.Subreddit> activeSubs = await subBLL.GetActiveSubs();

            List <string> activeSubNames = activeSubs.Select(s => s.SubName.ToLower()).ToList();

            var subs = rd.User.ModeratorSubreddits.Where(s => s.ModPermissions.HasFlag(RedditSharp.ModeratorPermission.All) && !activeSubNames.Contains(s.Name.ToLower())).Select(s => s.Name);

            return(subs.OrderBy(s => s));
        }
Example #4
0
        public Task <int> Post([FromBody] RequestObjects.TBImportMapping value)
        {
            if (!(User as ClaimsPrincipal).HasClaim("urn:snoonotes:subreddits:" + value.subName.ToLower() + ":admin", "true"))
            {
                throw new Exception("Not an admin of this subreddit"); //TODO Fix exception type
            }
            var userManager = Request.GetOwinContext().GetUserManager <ApplicationUserManager>();
            var user        = userManager.FindByName(User.Identity.Name);

            if (user.TokenExpires < DateTime.UtcNow)
            {
                Utilities.AuthUtils.GetNewToken(user);

                userManager.Update(user);
            }


            Utilities.SNWebAgent agent = new Utilities.SNWebAgent(user.AccessToken);

            var notes = RedditSharp.ToolBoxUserNotes.GetUserNotes(agent, value.subName);
            List <Models.Note> convertedNotes = Utilities.TBNoteUtils.ConvertTBNotesToSnooNotes(value.subName, value.GetNoteTypeMapping(), notes.ToList());

            return(new DAL.NotesDAL().AddNewToolBoxNotes(convertedNotes));
        }