Существует поле с именем FactorStateBase
, которое мы реализовали с помощью шаблонной стратегии.Это поле имеет значение по умолчанию PendingFactorState
.Мы хотим получить доступ ко всем факторам, которые в оплаченном состоянии и их даты попадают в определенный промежуток времени.Этот интервал времени оплаты 'new'ed внутри PaidFactorState
, когда платеж фактически выполнен, и новый класс назначен полю состояния.
Мой вопрос: как я могу получить доступ к полю даты платежа, которое находится внутри класса "paid" в Linq?
Спасибо,
public class Factor : AggregateRoot<long>, IHasCreationTime
{
public Factor(long id, long orderId, decimal price)
{
Id = id;
Price = price;
OrderId = orderId;
FactorStateBase = new PendingFactorState(Guid.NewGuid());
}
public long OrderId { get; private set; }
public decimal Price { get; private set; }
public virtual FactorStateBase FactorStateBase { get; private set; }
public void PayFactor(Guid id, string messageNumber, Guid paymentId, string transactionCode)
{
FactorStateBase = new PaidFactorState(id, messageNumber, paymentId, transactionCode);
}
}
public abstract class FactorStateBase : Entity
{
protected FactorStateBase(Guid id)
{
Id = id;
}
}
public class PaidFactorState : FactorStateBase
{
public PaidFactorState(Guid id, string messageNumber, Guid paymentId, string transactionCode) : base(id)
{
PayTime = DateTime.Now;
MessageNumber = messageNumber;
PaymentId = paymentId;
TransactionCode = transactionCode;
}
public DateTime PayTime { get; private set; }
public string MessageNumber { get; private set; }
public Guid PaymentId { get; private set; }
public string TransactionCode { get; private set; }
}