Skip to content

Instantly share code, notes, and snippets.

View mahizsas's full-sized avatar

MAHIZ mahizsas

View GitHub Profile
@mahizsas
mahizsas / With.cs
Last active August 29, 2015 14:13 — forked from i-e-b/With.cs
Retry pattern implementation
public class With
{
const int SqlDeadlockErrorNumber = 1205;
const int RetryLimit = 10;
public static T DeadlockRetry<T>(Func<T> thingToTry)
{
var lastError = new Exception("Unknown state");
for (int i = 0; i < RetryLimit; i++)
{
try
@mahizsas
mahizsas / EnumerableExtensions_DistinctOn.cs
Last active August 29, 2015 14:13 — forked from i-e-b/EnumerableExtensions_DistinctOn.cs
Distinct implementation based on Selector func
using System;
using System.Collections.Generic;
using System.Linq;
public static class EnumerableExtensions
{
public static IEnumerable<T> DistinctOn<T, TS>(this IEnumerable<T> src, Func<T, TS> selector)
{
var ge = new GeneralEquality<T,TS>(selector);
return src.Distinct(ge);
// A repository.
public interface IPurchaseOrderRepository
{
PurchaseOrder Get(string id);
// The commit method would likely be moved to a Unit of Work managed by infrastructure.
void Commit();
}
// A marker interface for a domain event.
public interface IDomainEvent { }
@mahizsas
mahizsas / sample-permissions.cs
Last active August 29, 2015 14:12
Sample Permissions in memory
using System;
using System.Collections.Concurrent;
using System.Collections.Generic;
using System.Linq;
using System.Security.Principal;
namespace GhettoPermissions
{
class Program
{
using System;
using System.Collections.Generic;
using System.Data.Entity;
using System.Data.Entity.Infrastructure;
using System.Data.Entity.Migrations;
using System.Linq;
using System.Text.RegularExpressions;
/// <summary>
/// Provides advanced migrations by providing a seeding platform for each migration.
@mahizsas
mahizsas / Demo-Entity-Framework.cs
Last active August 29, 2015 14:12 — forked from hudo/Program.cs
Create Standalone Entity-Framework Model-Test
class Program
{
static void Main(string[] args)
{
Database.SetInitializer(new DropCreateDatabaseAlways<PeopleContext>());
var context = new PeopleContext();
context.Database.Log = Console.WriteLine; // so we can inspect SQL statements
AddOnePerson(context);
public static class DataContextExtensions
{
/// <summary>
/// Map private collection property
/// </summary>
/// <typeparam name="T">Entity type</typeparam>
/// <typeparam name="R">Collection entity</typeparam>
/// <param name="propertyName">property name</param>
public static ManyNavigationPropertyConfiguration<T, R> HasMany<T, R>(this EntityTypeConfiguration<T> mapper, string propertyName)
where T : class
using System.Web.Http;
using Autofac;
using Microsoft.WindowsAzure.Mobile.Service;
using Microsoft.WindowsAzure.Mobile.Service.Config;
using Owin;
namespace henrikntest09Service
{
public static class WebApiConfig
{
Dropping Database.
Rebuild Database with latest Schema.
Load basic test environment data.
Loading basic account data.
Opening outer Transaction scope
Executing test 1.
Executing test 2.
Roll back transaction scope.
@mahizsas
mahizsas / AppContext.cs
Last active August 29, 2015 14:11
Mapping private properties with EF via conventions
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations.Schema;
using System.Data.Entity;
using System.Data.Entity.ModelConfiguration.Conventions;
using System.Linq;
using System.Reflection;
namespace ConsoleApplication1.Model
{