Skip to content

Instantly share code, notes, and snippets.

View carolynvs's full-sized avatar

Carolyn Van Slyck carolynvs

View GitHub Profile
@carolynvs
carolynvs / Carolynvs.ObjectExtensions.cs
Created August 13, 2012 23:19
Extension methods which allow dynamically getting and setting property values
using System;
using System.Collections.Generic;
using System.Linq.Expressions;
namespace Carolynvs.Extensions
{
/// <summary>
/// Extension methods for the Object type
/// </summary>
public static class ObjectExtensions
@carolynvs
carolynvs / AutoConvertToUtcDataContext.cs
Created August 13, 2012 23:27
Utility for dynamically converting all DateTime properties on an object to UTC
using System;
using System.Data;
using System.Data.Entity;
using System.Data.Entity.Infrastructure;
using System.Data.Entity.ModelConfiguration;
using System.Data.Objects;
using System.Linq;
using Carolynvs.Model; // Contains Carolynvs.UtcDateTimeConverter which provides UtcDateTimeConverter.Convert(object model)
namespace Carolynvs.DAL
@carolynvs
carolynvs / BundleConfig.cs
Created October 26, 2012 21:08
Demonstrates how to unit test ASP.NET MVC bundles
using System.Web.Optimization;
public class BundleConfig
{
public static void RegisterBundles(BundleCollection bundles)
{
bundles.Add(new StyleBundle(Bundles.Styles.Common)
.Include("~/Content/normalize.css",
"~/Content/site.css"));
@carolynvs
carolynvs / EntityFrameworkGenericMethod.cs
Created December 11, 2012 02:45
Using Generic Methods in Entity Framework Queries
public static IQueryable<T> FilterByFooBar<T>(this IQueryable<T> items)
where T : class, IFooBar
{
return items.Where(x => x.IsFooBar);
}
@carolynvs
carolynvs / InitializeKnockoutObservable.js
Last active October 13, 2015 22:18
Initializing Knockout.js Observables
var valueType = true;
var oValueType = new ko.observable(valueType);
oValueType(false);
// valueType is unchanged
var array = [1, 2, 3];
var oArray = new ko.observableArray(array);
oArray.remove(1);
// array is modified, now equals [2, 3]
@carolynvs
carolynvs / RouteConfig.cs
Last active June 12, 2020 18:41
ASP.NET Route configuration demonstrating how to mix REST and RPC style actions on the same controller.
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
// GET /api/{resource}/{action}
routes.MapHttpRoute(
name: "Web API RPC",
routeTemplate: "api/{controller}/{action}",
defaults: new { },
constraints: new { action = @"[A-Za-z]+", httpMethod = new HttpMethodConstraint("GET") }
@carolynvs
carolynvs / SampleRouteTest.cs
Last active December 10, 2015 17:58
How to test a ASP.NET Web API route using my contribution to WebApiContrib, RouteTestingExtensions.
using System.Web.Routing;
using WebApiContrib.Testing;
namespace FooBar
{
[TestFixture]
public void RouteFixture
{
[SetUp]
public void Setup()
@carolynvs
carolynvs / RequireHttpAttribute.cs
Last active December 11, 2015 06:18
RequireHttp attribute allows redirecting back to HTTP after visiting a secured page. Enables mixing secured and unsecured pages in ASP.NET MVC.
/// <summary>
/// Forces a secured (HTTPS) request to be resent over HTTP
/// </summary>
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, AllowMultiple = false, Inherited = true)]
public class RequireHttpAttribute : FilterAttribute, IAuthorizationFilter
{
public virtual void OnAuthorization(AuthorizationContext filterContext)
{
if(filterContext == null)
{

Keybase proof

I hereby claim:

  • I am carolynvs on github.
  • I am carolynvs (https://keybase.io/carolynvs) on keybase.
  • I have a public key whose fingerprint is D31E 7624 60E3 13EA 9780 1E16 33EE CC2F FF11 A333

To claim this, I am signing this object:

@carolynvs
carolynvs / install-mono.sh
Last active April 19, 2020 11:14
Install Mono on Ubuntu
wget http://download.mono-project.com/repo/xamarin.gpg
sudo apt-key add xamarin.gpg
echo "deb http://download.mono-project.com/repo/debian wheezy main" | sudo tee --append /etc/apt/sources.list.d/mono-xamarin.list
sudo apt-get update
sudo apt-get install mono-complete
sudo certmgr -ssl -m https://go.microsoft.com
sudo certmgr -ssl -m https://nugetgallery.blob.core.windows.net
sudo certmgr -ssl -m https://nuget.org
mozroots --import --sync