public virtual void Request(SpecificationRequest request) { ThrowArgumentExceptionIfArgIsNull(request, "request"); HandleRequest(request); if (SuccessorSpecified()) { successor.Request(request); } }
// TODO: Improve readability public override void HandleRequest(SpecificationRequest request) { var specification = request.Specification; if (specification is AndExpressionSpecification<Changeset>) { var andSpec = specification as AndExpressionSpecification<Changeset>; if (andSpec.Left is ChangesetsAfterRevisionSpecification) specification = andSpec.Left; else if (andSpec.Right is ChangesetsAfterRevisionSpecification) specification = andSpec.Right; } if (specification is ChangesetsAfterRevisionSpecification) { var revisionSpec = specification as ChangesetsAfterRevisionSpecification; if (revisionSpec.Revision != 0) { request.SvnLogArgs.Range = new SvnRevisionRange(revisionSpec.Revision, long.MaxValue); } } }
public abstract void HandleRequest(SpecificationRequest request);