| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- using System;
- using System.Linq.Expressions;
- using System.Runtime.CompilerServices;
- using InABox.Core;
- namespace comal.timesheets
- {
- public abstract class DetailShell<TParent, TEntity> : Shell<TParent, TEntity>
- where TParent : IDetailModel
- where TEntity : Entity, IRemotable, IPersistent, new()
- {
-
- public TEntity Entity { get; private set; }
-
- protected override void RowChanged()
- {
- base.RowChanged();
- Entity = Row.ToObject<TEntity>();
- }
-
- protected override T Get<T>([CallerMemberName] string property = null)
- {
- if (Entity != null)
- {
- return (T)CoreUtils.GetPropertyValue(
- Entity,
- CoreUtils.GetFullPropertyName(Columns[property], ".")
- );
- }
- return base.Get<T>(property);
- }
-
- protected override void Set<T>(T value, bool notify = true, [CallerMemberName] string property = null)
- {
- if (Entity == null)
- Entity = Row.ToObject<TEntity>();
- CoreUtils.SetPropertyValue(
- Entity,
- CoreUtils.GetFullPropertyName(Columns[property], "."),
- value
- );
- base.Set(value,notify,property);
- }
-
- }
- }
|