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 ); }
// 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); }
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)); }
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)); }