Skip to content

Instantly share code, notes, and snippets.

bool theNumberIsEven (int number) => number % 2 == 0;
numbers.Where(theNumberIsEven);
int[] numbers = { 1, 4, 7, 2, 8, 6, 9, 7, 1, 6, 10 };
numbers.Where(number => number % 2 == 0);
for (let numberToFactorise of numbersToFactorise) {
for (let possibleFactor = 1; possibleFactor <= numberToFactorise; possibleFactor++) {
if (numberToFactorise % possibleFactor === 0)
allFactors.push(numberToFactorise)
}
}
const numbersToFactorise = [99999, 12, 15]
const allFactors = []
for (let number of numbersToFactorise) {
for (let i = 1; i <= number; i++) {
if (number % i === 0)
allFactors.push(number)
}
}
const numberToFactorise = 99999
const confirmedFactors = []
for (let i = 1; i <= numberToFactorise; i++)
{
if(numberToFactorise % i === 0)
confirmedFactors.push(i)
}
class PaymentUriBuilder
{
private string QueryString => CreateQueryString(_queryStringCache.Exposed);
private string SafeQueryString => CreateQueryString(_queryStringCache.Redacted);
private readonly DoubleDic<string, string> _queryStringCache =
new DoubleDic<string ,string>(new SortedDictionary<string, string>());
private string CreateQueryString(IReadOnlyDictionary<string, string> dic)
class DoubleDic<TKey, TValue>
{
public HashSet<TKey> SensitiveKeys { get; } = new HashSet<TKey>();
public IReadOnlyDictionary<TKey, TValue> Exposed => _source;
public TValue RedactedValue { get; set; }
public IReadOnlyDictionary<TKey, TValue> Redacted
{
private string SafeQueryString =>
string.Join("&", _queryStringCache.Select(
pair => $"{pair.Key}={(_sensitiveParameters.Contains(pair.Key) ? "XXX" : pair.Value)}"));
var builder =
new PaymentUriBuilder("http://www.paymentprocessor.com/makeapayment", "SECRET")
.Append("AMOUNT", paymentModel.Amount)
.Append("PASSWORD", Configuration.Password)
.Append("USER", Configuration.Username)
.Append("CURRENCY", paymentModel.CurrencyCode;
Logger.AddInformational($"Generated Payment Page URL: '{builder.SafePaymentUri}'");
private readonly HashSet<string> _sensitiveParameters = new HashSet<string>()
{
"PASSWORD",
"NAME",
"EMAIL",
"ADDRESS"
};
public string SafeQueryString
{