예제 #1
0
        public async Task BanChannel(string subName, string url, string reason, string thingID, string bannedBy)
        {
            DAL.YouTubeDAL ytDAL   = new DAL.YouTubeDAL();
            string         ytVidID = Helpers.YouTubeHelpers.ExtractVideoId(url);

            if (string.IsNullOrWhiteSpace(ytVidID))
            {
                throw new ArgumentException($"Couldn't extract YouTube video ID from url: {url}");
            }
            string channelID = await ytDAL.GetChannelID(ytVidID);

            Models.BannedEntity toBan = new Models.BannedEntity()
            {
                BanDate      = DateTime.UtcNow,
                BannedBy     = bannedBy,
                BanReason    = reason,
                EntityString = channelID,
                SubName      = subName,
                ThingID      = thingID,
                Type         = Models.BannedEntity.EntityType.Channel
            };
            var conn = await GetSettings(subName);

            DAL.DirtbagDAL dirtbag = new DAL.DirtbagDAL();
            await dirtbag.AddToBanList(conn, new List <Models.BannedEntity>() { toBan });
        }
예제 #2
0
        public async Task <bool> TestConnection(string subName)
        {
            DAL.DirtbagDAL dirtbag     = new DAL.DirtbagDAL();
            var            curSettings = await GetSettings(subName);

            return(await dirtbag.TestConnection(curSettings, subName));
        }
예제 #3
0
        public async Task UpdateBanReason(string subName, int id, string reason, string modname)
        {
            var conn = await GetSettings(subName);

            DAL.DirtbagDAL dirtbag = new DAL.DirtbagDAL();
            await dirtbag.UpdateBanReason(conn, subName, id, reason, modname);
        }
예제 #4
0
        public async Task<bool> RemoveBan(int id, string modName, string subName ) {
            var curSettings = await GetSettings( subName );
            if ( curSettings == null || string.IsNullOrWhiteSpace( curSettings.DirtbagUrl ) )
                throw new HttpRequestException( $"No valid settings for {subName} could be found!" );

            DAL.DirtbagDAL dirtbag = new DAL.DirtbagDAL();
            return await dirtbag.RemoveFromBanList( curSettings, id, modName, subName );
        }
예제 #5
0
        public async Task<IEnumerable<Models.BannedEntity>> GetBanList(string subName ) {
            var curSettings = await GetSettings( subName );
            if ( curSettings == null || string.IsNullOrWhiteSpace( curSettings.DirtbagUrl ) )
                throw new HttpRequestException( $"No valid settings for {subName} could be found!" );

            DAL.DirtbagDAL dirtbag = new DAL.DirtbagDAL();
            return await dirtbag.GetBanList( curSettings, subName );
        }
예제 #6
0
        public async Task <bool> RemoveBan(int id, string modName, string subName)
        {
            var curSettings = await GetSettings(subName);

            if (curSettings == null || string.IsNullOrWhiteSpace(curSettings.DirtbagUrl))
            {
                throw new HttpRequestException($"No valid settings for {subName} could be found!");
            }

            DAL.DirtbagDAL dirtbag = new DAL.DirtbagDAL();
            return(await dirtbag.RemoveFromBanList(curSettings, id, modName, subName));
        }
예제 #7
0
        public async Task <IEnumerable <Models.BannedEntity> > GetBanList(string subName)
        {
            var curSettings = await GetSettings(subName);

            if (curSettings == null || string.IsNullOrWhiteSpace(curSettings.DirtbagUrl))
            {
                throw new HttpRequestException($"No valid settings for {subName} could be found!");
            }

            DAL.DirtbagDAL dirtbag = new DAL.DirtbagDAL();
            return(await dirtbag.GetBanList(curSettings, subName));
        }
예제 #8
0
 public async Task<bool> TestConnection(Models.DirtbagSettings newSettings, string subName ) {
     Models.DirtbagSettings curSettings = await GetSettings( subName );
     DAL.DirtbagDAL dirtbag = new DAL.DirtbagDAL();
     
     if( curSettings == null || curSettings.DirtbagUrl != newSettings.DirtbagUrl ) {
         //no current settings OR url changed, don't allow using saved password.
         return await dirtbag.TestConnection( newSettings, subName );
     }
     else if(string.IsNullOrWhiteSpace( newSettings.DirtbagPassword)) {
         //url did NOT change, and password wasn't updated
         return await dirtbag.TestConnection( curSettings.DirtbagUrl, newSettings.DirtbagUsername, curSettings.DirtbagPassword, subName );
     }
     else {
         return await dirtbag.TestConnection( newSettings, subName );
     }
 }
예제 #9
0
        public async Task BanUser(string subName, string username, string reason, string thingID, string bannedBy)
        {
            Models.BannedEntity toBan = new Models.BannedEntity()
            {
                BanDate      = DateTime.UtcNow,
                BannedBy     = bannedBy,
                BanReason    = reason,
                EntityString = username,
                SubName      = subName,
                ThingID      = thingID,
                Type         = Models.BannedEntity.EntityType.User
            };
            var conn = await GetSettings(subName);

            DAL.DirtbagDAL dirtbag = new DAL.DirtbagDAL();
            await dirtbag.AddToBanList(conn, new List <Models.BannedEntity>() { toBan });
        }
예제 #10
0
        public async Task <bool> TestConnection(Models.DirtbagSettings newSettings, string subName)
        {
            Models.DirtbagSettings curSettings = await GetSettings(subName);

            DAL.DirtbagDAL dirtbag = new DAL.DirtbagDAL();

            if (curSettings == null || curSettings.DirtbagUrl != newSettings.DirtbagUrl)
            {
                //no current settings OR url changed, don't allow using saved password.
                return(await dirtbag.TestConnection(newSettings, subName));
            }
            else if (string.IsNullOrWhiteSpace(newSettings.DirtbagPassword))
            {
                //url did NOT change, and password wasn't updated
                return(await dirtbag.TestConnection(curSettings.DirtbagUrl, newSettings.DirtbagUsername, curSettings.DirtbagPassword, subName));
            }
            else
            {
                return(await dirtbag.TestConnection(newSettings, subName));
            }
        }
예제 #11
0
 public async Task BanUser( string subName, string username, string reason, string thingID, string bannedBy ) {
     Models.BannedEntity toBan = new Models.BannedEntity() {
         BanDate = DateTime.UtcNow,
         BannedBy = bannedBy,
         BanReason = reason,
         EntityString = username,
         SubName = subName,
         ThingID = thingID,
         Type = Models.BannedEntity.EntityType.User
     };
     var conn = await GetSettings( subName );
     DAL.DirtbagDAL dirtbag = new DAL.DirtbagDAL();
     await dirtbag.AddToBanList( conn, new List<Models.BannedEntity>() { toBan } );
 }
예제 #12
0
 public async Task BanChannel( string subName, string url, string reason, string thingID, string bannedBy ) {
     DAL.YouTubeDAL ytDAL = new DAL.YouTubeDAL();
     string ytVidID = Helpers.YouTubeHelpers.ExtractVideoId( url );
     if ( string.IsNullOrWhiteSpace( ytVidID ) )
         throw new ArgumentException( $"Couldn't extract YouTube video ID from url: {url}" );
     string channelID = await ytDAL.GetChannelID( ytVidID );
     Models.BannedEntity toBan = new Models.BannedEntity() {
         BanDate = DateTime.UtcNow,
         BannedBy = bannedBy,
         BanReason = reason,
         EntityString = channelID,
         SubName = subName,
         ThingID = thingID,
         Type = Models.BannedEntity.EntityType.Channel
     };
     var conn = await GetSettings( subName );
     DAL.DirtbagDAL dirtbag = new DAL.DirtbagDAL();
     await dirtbag.AddToBanList(conn, new List<Models.BannedEntity>() { toBan } );
 }
예제 #13
0
 public async Task UpdateBanReason( string subName, int id, string reason, string modname ) {
     var conn = await GetSettings( subName );
     DAL.DirtbagDAL dirtbag = new DAL.DirtbagDAL();
     await dirtbag.UpdateBanReason(conn, subName, id, reason, modname );
 }
예제 #14
0
 public async Task<bool> TestConnection(string subName ) {
     DAL.DirtbagDAL dirtbag = new DAL.DirtbagDAL();
     var curSettings = await GetSettings( subName );
     return await dirtbag.TestConnection( curSettings, subName );
 }