public virtual IQueryable <T> DocumentFiltering(IQueryable <T> query, Sungero.Domain.PropertyFilteringEventArgs e) { query = query.Where(d => InternalDocumentBases.Is(d) && d.LifeCycleState != Docflow.OfficialDocument.LifeCycleState.Obsolete); if (_obj.Reason == Docflow.SignatureSetting.Reason.PowerOfAttorney) { query = query.Where(d => PowerOfAttorneys.Is(d) && PowerOfAttorneys.As(d).ValidTill >= Calendar.UserToday); if (_obj.Recipient != null) { query = query.Where(d => Equals(_obj.Recipient, PowerOfAttorneys.As(d).IssuedTo)); } } return(query); }
public virtual void DocumentChanged(Sungero.Docflow.Shared.SignatureSettingDocumentChangedEventArgs e) { if (e.NewValue != null && !Equals(e.NewValue, e.OldValue) && _obj.Reason == Docflow.SignatureSetting.Reason.PowerOfAttorney) { if (PowerOfAttorneys.Is(e.NewValue)) { var powerOfAttorney = PowerOfAttorneys.As(e.NewValue); _obj.Recipient = powerOfAttorney.IssuedTo; _obj.ValidFrom = powerOfAttorney.RegistrationDate; _obj.ValidTill = powerOfAttorney.ValidTill; _obj.BusinessUnits.Clear(); var newBusinessUnit = _obj.BusinessUnits.AddNew(); newBusinessUnit.BusinessUnit = powerOfAttorney.BusinessUnit; } else { _obj.Recipient = null; _obj.ValidTill = null; _obj.BusinessUnits.Clear(); } } }