Skip to content

Instantly share code, notes, and snippets.

using System.Collections.Generic;
namespace ADL.TechPubs
{
public interface IApplicationItems : IDictionary<string, object>
{
bool Exists(string key);
object Get(string key);
T Get<T>(string key) where T : class;
}
using System;
using System.ComponentModel.DataAnnotations;
namespace ADL.TechPubs.WebFramework.Attributes
{
public class IsTrueAttribute : ValidationAttribute
{
/// <summary>
/// Determines whether the specified value of the object is valid.
/// </summary>
protected async Task DoSomething()
await Task.Run(() =>
{
Console.WriteLine("Hello World!");
});
}
@xrisdoc
xrisdoc / SplitIntoPages.cs
Created June 17, 2020 16:07
Splits an IEnumerable object into multiple IEnumerable objects
private IEnumerable<IEnumerable<T>> SplitIntoPages<T>(IEnumerable<T> items, int itemsPerPage)
{
var pages = new List<List<T>>();
int pageCount = (int)Math.Ceiling((items.Count() / (decimal)itemsPerPage));
int skipCount = 0;
for (int i = 0; i < pageCount; i++)
{
var subset = items.Skip(skipCount).Take(itemsPerPage).ToList();
pages.Add(subset);
skipCount += itemsPerPage;
@xrisdoc
xrisdoc / AzdUpdateRealeseVars.ps1
Created August 23, 2019 09:37
PowerShell: Update Azure DevOps Release Variables
# Retrieve the current release
$releaseUrl = ('{0}{1}/_apis/release/releases/{2}?api-version=5.0' -f $($env:SYSTEM_TEAMFOUNDATIONSERVERURI), $($env:SYSTEM_TEAMPROJECTID), $($env:RELEASE_RELEASEID) )
$release = Invoke-RestMethod -Uri $releaseUrl -Headers @{
Authorization = "Bearer $env:SYSTEM_ACCESSTOKEN"
}
# Set the relevant variables on the release
$release.variables."My.Test.Vari".value = "just a test"
$release.variables | Add-Member NoteProperty "My.Other.Test" ([PSCustomObject]@{value='test AGAIN'})
$release.variables | Add-Member NoteProperty "Agent.BakFileToRestoreFrom" ([PSCustomObject]@{value='$(Agent.Output.DatabaseBakFileLocation)'})
@xrisdoc
xrisdoc / UploadToDropbox.ps1
Last active August 22, 2019 21:52
PowerShell: Upload to Dropbox
Param(
[Parameter(Mandatory=$True)]
[string]$file,
[Parameter(Mandatory=$False)]
[string]$fileNameOverride = "",
[Parameter(Mandatory=$False)]
[boolean]$appendDateTime = $False,
@xrisdoc
xrisdoc / BackupDirectory.ps1
Last active August 22, 2019 21:48
PowerShell: Backup Directory
Param(
[Parameter(Mandatory=$True)]
[string]$directory,
[Parameter(Mandatory=$False)]
[string]$backupDirectory = "C:\Backups\",
[Parameter(Mandatory=$False)]
[boolean]$zip = $False,
@xrisdoc
xrisdoc / RestoreDatabase.ps1
Last active August 23, 2019 09:28
PowerShell: Restore SQL Database
Param(
# The bak file from which the restore will be performed
[Parameter(Mandatory=$True)]
[string]$file,
# The directory where the databse files (MDF and LDF) will be saved/restored to
[Parameter(Mandatory=$True)]
[string]$directory,
# The name of the database that is being restored
@xrisdoc
xrisdoc / DateTimeExtensions.cs
Last active June 20, 2017 09:06
DateTimeExtensions
using System;
namespace Xrisdoc.Extensions
{
public static class DateTimeExtensions
{
/// <summary>
/// Identifies whether or not the specified period is a monthly period
/// </summary>
/// <param name="startDate">The start date of the period</param>
Import-Module -Name D:\Temp\ACME-posh\ACMEPowerShell.psd1
$domain = "mydomain.com"
$certificiatePassword = "abcd1234"
$email = "letsencrypt@mydomain.com"
$vault = "D:\Vault\{0}\{1}" -f $domain, [guid]::NewGuid()
mkdir $vault
cd $vault
Initialize-ACMEVault -BaseURI https://acme-v01.api.letsencrypt.org/
New-ACMERegistration -Contacts mailto:$email