/// <summary>Получение привязывателя атрибутов нижелаежащей сущности.</summary>
/// <param name="metamodel">Метамодель.</param>
public static EntryBinder GetBinder(Metamodel metamodel)
{
ChecksHelper.CheckArgumentNotNull(metamodel, "metamodel");
return new EntryBinder(
metamodel.DescriptorOf<ShipmentScheduleItemTimes>(),
metamodel.GetAttr<ShipmentScheduleItemTimes>(t => t.Owner),
new ReadOnlyCollection<PropertyBinder>(new[]
{
_(metamodel, e => e.DepartureTime, t => t.DepartureTime),
_(metamodel, e => e.PrepareDocumentsTime, t => t.PrepareDocumentsTime),
_(metamodel, e => e.StartLoadingTime, t => t.StartLoadingTime),
}));
}
/// <summary>Карта соответствия свойств обертки и атрибутов нижележащей сущности.</summary>
/// <param name="metamodel">Метомодель.</param>
/// <param name="propAccessor">Выражение для свойства обертки.</param>
/// <param name="attrAccessor">Выражение для атрибута сущности.</param>
private static PropertyBinder _(Metamodel metamodel,
Expression<Func<ShipmentScheduleItemDayOfWeekEntry, TimeOfDay?>> propAccessor,
Expression<Func<ShipmentScheduleItemTimes, object>> attrAccessor)
{
return new PropertyBinder(GetProperty(propAccessor),
metamodel.GetAttr(attrAccessor));
}