private static string GetDescription(BitcoinFaucets faucet) { var fi = faucet.GetType().GetField(faucet.ToString()); var attributes = ( DescriptionAttribute[] )fi.GetCustomAttributes(typeof(DescriptionAttribute), false); return(attributes.Length > 0 ? attributes[0].Description : String.Empty); }
private void Visit(BitcoinFaucets faucetID, CancellationToken cancellationToken) { try { var description = GetDescription(faucetID); //in BitcoinFaucets case, the description is a uri if (String.IsNullOrWhiteSpace(description)) { return; } var uri = new Uri(description); Console.WriteLine("Visiting (#{0}) {1} @ {2}", faucetID, description, uri.PathAndQuery); var navigated = this.Navigate(description); if (!navigated) { faucetID = BitcoinFaucets.AboutBlank; } if (!description.StartsWith("about:", StringComparison.OrdinalIgnoreCase)) { this.Throttle(); } switch (faucetID) { //case BitcoinFaucets.BitChestDotMe: // this.Visit_BitChestDotMe( "1KEEP1Wd6KKVHJrBaB45cSHXzMJu9VWWAt", cancellationToken ); // break; case BitcoinFaucets.LandOfBitCoinDotCom: this.Visit_LandOfBitCoinDotCom("1MpfkH1vDyGrmtykodJmzBNWi81KqXa8SE", cancellationToken); break; default: this.Visit_AboutBlank(); break; } } catch (Exception exception) { exception.Error(); } finally { this.Throttle(); } }
private void Visit( BitcoinFaucets faucetID, CancellationToken cancellationToken ) { try { var description = GetDescription( faucetID ); //in BitcoinFaucets case, the description is a uri if ( String.IsNullOrWhiteSpace( description ) ) { return; } var uri = new Uri( description ); Console.WriteLine( "Visiting (#{0}) {1} @ {2}", faucetID, description, uri.PathAndQuery ); var navigated = this.Navigate( description ); if ( !navigated ) { faucetID = BitcoinFaucets.AboutBlank; } if ( !description.StartsWith( "about:", StringComparison.OrdinalIgnoreCase ) ) { this.Throttle(); } switch ( faucetID ) { //case BitcoinFaucets.BitChestDotMe: // this.Visit_BitChestDotMe( "1KEEP1Wd6KKVHJrBaB45cSHXzMJu9VWWAt", cancellationToken ); // break; case BitcoinFaucets.LandOfBitCoinDotCom: this.Visit_LandOfBitCoinDotCom( "1MpfkH1vDyGrmtykodJmzBNWi81KqXa8SE", cancellationToken ); break; default: this.Visit_AboutBlank(); break; } } catch ( Exception exception ) { exception.Error(); } finally { this.Throttle(); } }
private static string GetDescription( BitcoinFaucets faucet ) { var fi = faucet.GetType().GetField( faucet.ToString() ); var attributes = ( DescriptionAttribute[] )fi.GetCustomAttributes( typeof( DescriptionAttribute ), false ); return attributes.Length > 0 ? attributes[ 0 ].Description : String.Empty; }