narsil/Tanshu.Accounts.Repository/Fluent/NotNullConvention.cs

29 lines
924 B
C#

using System;
using FluentNHibernate.Conventions;
using System.Reflection;
using FluentNHibernate;
using FluentNHibernate.Conventions.Instances;
using FluentNHibernate.Conventions.Inspections;
using FluentNHibernate.Conventions.AcceptanceCriteria;
using Tanshu.Accounts.Contracts;
using Tanshu.Accounts.SqlDAO;
using System.Diagnostics;
namespace Tanshu.Accounts.Conventions
{
public class NotNullConvention : IPropertyConvention, IPropertyConventionAcceptance
{
public void Apply(IPropertyInstance instance)
{
var property = instance.Property;
Trace.TraceInformation("Not Null on {0}.{1}", property.DeclaringType.Name, property.Name);
instance.Not.Nullable();
}
public void Accept(IAcceptanceCriteria<IPropertyInspector> criteria)
{
criteria.Expect(x => AttributeChecker.NotNull(x.Property.MemberInfo));
}
}
}