Skip to content

Instantly share code, notes, and snippets.

@mhinze
mhinze / gist:123732
Created June 4, 2009 17:34
git svn workflow
# adapted from http://notes.jimlindley.com/2008/3/25/git-svn-that-works-for-me
# initial setup
git svn clone <svn_repo>
# begin the workflow
git svn fetch -r HEAD --ignore-paths="Package.zip" # aliased to 'git up', my Package.zip is very large.
git svn rebase -l # we just updated, no need to go back to the svn repo
# 99% of daily workflow
private void MapAllPersistentObjects()
{
var openType = typeof(IdToEntityConverter<>);
var guidType = typeof(Guid);
var allPersistentObjects =
from t in typeof(Customer).Assembly.GetTypes()
where typeof(Entity).IsAssignableFrom(t)
let converterType = openType.MakeGenericType(t)
select new {EntityType = t, ConverterType = converterType};
@mhinze
mhinze / gist:140174
Created July 3, 2009 15:15
nerddinner automapper configuration
public class AutoMapperConfiguration
{
public static void Configure()
{
Mapper.Initialize(x => x.AddProfile<ViewModelProfile>());
}
}
public class ViewModelProfile : Profile
{
public static bool IsSubclassOfOpenGeneric(this Type type, Type generic)
{
while (type != typeof(object))
{
var current = type.IsGenericType ? type.GetGenericTypeDefinition() : type;
if (generic == current)
{
return true;
}
type = type.BaseType;
public static bool IsSubclassOfOpenGeneric(this Type type, Type generic)
{
// fine!
return type != typeof(object) &&
(generic == (type.IsGenericType ? type.GetGenericTypeDefinition() : type) ||
type.BaseType.IsSubclassOfOpenGeneric(generic));
}
public interface IRepository
{
void Save<ENTITY>(ENTITY entity)
where ENTITY : DomainEntity;
ENTITY Load<ENTITY>(Guid id)
where ENTITY : DomainEntity;
IQueryable<ENTITY> Query<ENTITY>()
where ENTITY : DomainEntity;
public interface IOrderRepository : IRepository<Order>
{
Order[] GetAllOrderForCustomer(Customer customer);
int GetCountOfOrdersForCustomer(Customer customer);
bool HasOpenOrders(Customer customer);
Order[] GetAllOpenOrders(Customer customer);
Order[] GetOrdersHavingRefunds(Customer customer);
Order[] GetOrdersWithFundsAvailableForRefund(Customer customer);
Order[] GetAllSignificantOrderForCustomer(Customer customer);
Order[] GetBySearchCriteria(IOrderCriteria criteria);
public interface IOrderRepository : IRepository<Order>
{
Order[] GetAllOrderForCustomer(Customer customer);
int GetCountOfOrdersForCustomer(Customer customer);
bool HasOpenOrders(Customer customer);
Order[] GetAllOpenOrders(Customer customer);
Order[] GetOrdersHavingRefunds(Customer customer);
Order[] GetOrdersWithFundsAvailableForRefund(Customer customer);
Order[] GetAllSignificantOrderForCustomer(Customer customer);
Order[] GetBySearchCriteria(IOrderCriteria criteria);
public class BaseReportPage<TModel> : BaseViewPage<TModel>, IViewBase where TModel : class
{
// ...
protected override void OnPreInit(EventArgs e)
{
if (ShowAsPdf)
{
string path = _configuration.GetPrincePath();
var prince = new Prince(path);
public static class DomainEvents
{
public static IContainer Container { get; set; }
public static IDomainEvent LastRaised { get; private set; }
public static void Raise<T>(T args) where T : IDomainEvent
{
if (Container != null)
foreach (var handler in Container.GetAllInstances<IHandler<T>>())
handler.Handle(args);