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(); } } }
public virtual void RecipientChanged(Sungero.Docflow.Shared.SignatureSettingRecipientChangedEventArgs e) { // При изменении подписывающего почистить документ. if (_obj.Reason == Docflow.SignatureSetting.Reason.PowerOfAttorney && _obj.Document != null && Docflow.PowerOfAttorneys.Is(_obj.Document) && !Equals(e.NewValue, PowerOfAttorneys.As(_obj.Document).IssuedTo)) { _obj.Document = null; _obj.ValidFrom = null; _obj.ValidTill = null; } if (!Equals(e.NewValue, e.OldValue)) { _obj.Certificate = null; } Functions.SignatureSetting.ChangePropertiesAccess(_obj); }