Skip to content

Instantly share code, notes, and snippets.

Seb Nilsson sebnilsson

Block or report user

Report or block sebnilsson

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
View keybase.md

Keybase proof

I hereby claim:

  • I am sebnilsson on github.
  • I am sebnilsson (https://keybase.io/sebnilsson) on keybase.
  • I have a public key ASCWYybMp3SXcq0oy9xFjsdWBwizgfPCOEE1sCL7ke-Gmwo

To claim this, I am signing this object:

@sebnilsson
sebnilsson / HtmlEncodeTagHelper.cs
Last active Jan 18, 2019
Render everything inside tag as encoded HTML
View HtmlEncodeTagHelper.cs
[HtmlTargetElement("html-encode", TagStructure = TagStructure.NormalOrSelfClosing)]
public class HtmlEncodeTagHelper : TagHelper
{
public override async Task ProcessAsync(TagHelperContext context, TagHelperOutput output)
{
var childContent = output.Content.IsModified
? output.Content.GetContent()
: (await output.GetChildContentAsync()).GetContent();
string encodedChildContent = WebUtility.HtmlEncode(childContent ?? string.Empty);
@sebnilsson
sebnilsson / HashAlgorithmExtensions.cs
Created Dec 30, 2017
Compute hash in .NET using async await
View HashAlgorithmExtensions.cs
public static class HashAlgorithmExtensions
{
private const int BufferSize = 4096;
public static async Task<byte[]> ComputeHashAsync(this HashAlgorithm hash, Stream inputStream)
{
if (hash == null) throw new ArgumentNullException(nameof(hash));
if (inputStream == null) throw new ArgumentNullException(nameof(inputStream));
hash.Initialize();
@sebnilsson
sebnilsson / Autofac.AutoMapper.Program.cs
Last active Feb 5, 2019
Registering Autofac & AutoMapper Circularly
View Autofac.AutoMapper.Program.cs
public static void Main(string[] args)
{
var components = RegisterComponents();
Run(components);
}
private static IContainer RegisterComponents()
{
var builder = new ContainerBuilder();
View DateTimeRfc3339Extensions.cs
public static class DateTimeRfc3339Extensions
{
public static string ToRfc3339String(this DateTime dateTime)
{
string rfc3339 = dateTime.ToString("yyyy-MM-dd'T'HH:mm:ss.fffzzz", DateTimeFormatInfo.InvariantInfo);
return rfc3339;
}
}
@sebnilsson
sebnilsson / RouteCollectionAreasExtensions.cs
Created Dec 2, 2015
Manually map an area-specific route
View RouteCollectionAreasExtensions.cs
public static class RouteCollectionAreasExtensions
{
public static Route MapAreaRoute(
this RouteCollection routes,
string areaName,
string routeName,
string url,
object defaults = null,
object constraints = null,
string[] namespaces = null)
@sebnilsson
sebnilsson / UriExtensions.cs
Last active Nov 16, 2017
Get relative part of an Uri
View UriExtensions.cs
public static string ToRelative(this Uri uri)
{
if (uri == null)
{
throw new ArgumentNullException(nameof(uri));
}
return uri.IsAbsoluteUri ? uri.PathAndQuery : uri.OriginalString;
}
@sebnilsson
sebnilsson / FakeHttpContextFactory.cs
Created Oct 24, 2014
Create a fake HttpContext, without using mocking-frameworks
View FakeHttpContextFactory.cs
public static HttpContext GetFakeHttpContext(
string url,
HttpRequest request = null,
HttpResponse response = null)
{
if (!Uri.IsWellFormedUriString(url, UriKind.Absolute))
{
throw new ArgumentOutOfRangeException("url", "The URL must be a well-formed absolute URI.");
}
@sebnilsson
sebnilsson / SuppressXFrameOptionsHeaderAttribute.cs
Created Sep 30, 2014
ASP.NET MVC: X-Frame-Options ALLOWALL
View SuppressXFrameOptionsHeaderAttribute.cs
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, AllowMultiple = false, Inherited = true)]
public class SuppressXFrameOptionsHeaderAttribute : ActionFilterAttribute
{
public override void OnResultExecuted(ResultExecutedContext filterContext)
{
filterContext.HttpContext.Response.Headers.Set("X-Frame-Options", "ALLOWALL");
}
}
@sebnilsson
sebnilsson / ToDynamicObjectExtensions.cs
Created Aug 25, 2014
Extension-method to convert any object to dynamic ExpandoObject
View ToDynamicObjectExtensions.cs
public static ExpandoObject ToDynamic(this object obj)
{
var expandoObject = new ExpandoObject();
if (obj == null)
{
return expandoObject;
}
var dictionaryValues = new RouteValueDictionary(obj);
if (!dictionaryValues.Any())
You can’t perform that action at this time.