private PrincipalSearchResult <Principal> FindAll(bool returnOne) { GlobalDebug.WriteLineIf(GlobalDebug.Info, "PrincipalSearcher", "Entering FindAll, returnOne=" + returnOne.ToString()); if (_qbeFilter == null) { throw new InvalidOperationException(StringResources.PrincipalSearcherMustSetFilter); } // Double-check that the Principal isn't persisted. We don't allow them to assign a persisted // Principal as the filter, but they could have persisted it after assigning it to the QueryFilter // property. if (!_qbeFilter.unpersisted) { throw new InvalidOperationException(StringResources.PrincipalSearcherPersistedPrincipal); } // Validate the QBE filter: make sure it doesn't have any non-scalar properties set. if (HasReferentialPropertiesSet()) { throw new InvalidOperationException(StringResources.PrincipalSearcherNonReferentialProps); } GlobalDebug.WriteLineIf(GlobalDebug.Info, "PrincipalSearcher", "FindAll: qbeFilter is non-null and passes"); ResultSet resultSet = _ctx.QueryCtx.Query(this, returnOne ? 1 : -1); PrincipalSearchResult <Principal> fr = new PrincipalSearchResult <Principal>(resultSet); return(fr); }
public Principal FindOne() { Principal current; this.CheckDisposed(); PrincipalSearchResult <Principal> principals = this.FindAll(true); using (principals) { FindResultEnumerator <Principal> enumerator = (FindResultEnumerator <Principal>)principals.GetEnumerator(); if (!enumerator.MoveNext()) { current = null; } else { current = enumerator.Current; } } return(current); }
private PrincipalSearchResult <Principal> FindAll(bool returnOne) { int num; if (this.qbeFilter != null) { if (this.qbeFilter.unpersisted) { if (!this.HasReferentialPropertiesSet()) { StoreCtx queryCtx = this.ctx.QueryCtx; PrincipalSearcher principalSearcher = this; if (returnOne) { num = 1; } else { num = -1; } ResultSet resultSet = queryCtx.Query(principalSearcher, num); PrincipalSearchResult <Principal> principals = new PrincipalSearchResult <Principal>(resultSet); return(principals); } else { throw new InvalidOperationException(StringResources.PrincipalSearcherNonReferentialProps); } } else { throw new InvalidOperationException(StringResources.PrincipalSearcherPersistedPrincipal); } } else { throw new InvalidOperationException(StringResources.PrincipalSearcherMustSetFilter); } }
public Principal FindOne() { GlobalDebug.WriteLineIf(GlobalDebug.Info, "PrincipalSearcher", "Entering FindOne()"); CheckDisposed(); using (PrincipalSearchResult <Principal> fr = FindAll(true)) { FindResultEnumerator <Principal> fre = (FindResultEnumerator <Principal>)fr.GetEnumerator(); // If there's (at least) one result, return it. Else return null. if (fre.MoveNext()) { GlobalDebug.WriteLineIf(GlobalDebug.Info, "PrincipalSearcher", "FindOne(): found a principal"); return((Principal)fre.Current); } else { GlobalDebug.WriteLineIf(GlobalDebug.Info, "PrincipalSearcher", "FindOne(): found no principal"); return(null); } } }