void IAdapter.AssignParentCollection(IAdapterCollection parent) { AssignParentCollection(parent); }
// Assigns the reference to the parent adapter collection that will contain this adapter. void IAdapter.AssignParentCollection(IAdapterCollection parent) { m_parent = parent; }
/// <summary> /// Assigns the reference to the parent <see cref="IAdapterCollection"/> that will contain this <see cref="AdapterBase"/>. /// </summary> /// <param name="parent">Parent adapter collection.</param> protected virtual void AssignParentCollection(IAdapterCollection parent) { m_parent = parent; }
/// <summary> /// Gets requested <see cref="IAdapter"/> and its containing <see cref="IAdapterCollection"/>. /// </summary> /// <param name="requestInfo"><see cref="ClientRequestInfo"/> instance containing the client request.</param> /// <param name="collection">Containing <see cref="IAdapterCollection"/> for <see cref="IAdapter"/>.</param> /// <returns>Requested <see cref="IAdapter"/>.</returns> protected virtual IAdapter GetRequestedAdapter(ClientRequestInfo requestInfo, out IAdapterCollection collection) { IAdapter adapter; string adapterID = requestInfo.Request.Arguments["OrderedArg1"]; collection = GetRequestedCollection(requestInfo); if (!string.IsNullOrWhiteSpace(adapterID)) { uint id; adapterID = adapterID.Trim(); if (adapterID.IsAllNumbers() && uint.TryParse(adapterID, out id)) { // Adapter ID is numeric, try numeric lookup by adapter ID in requested collection if (collection.TryGetAdapterByID(id, out adapter)) return adapter; // Try looking for ID in any collection if all runtime ID's are unique if (m_uniqueAdapterIDs && m_iaonSession.AllAdapters.TryGetAnyAdapterByID(id, out adapter, out collection)) return adapter; collection = GetRequestedCollection(requestInfo); SendResponse(requestInfo, false, "Failed to find adapter with ID \"{0}\".", id); } else { // Adapter ID is alpha-numeric, try text-based lookup by adapter name in requested collection if (collection.TryGetAdapterByName(adapterID, out adapter)) return adapter; // Try looking for adapter name in any collection if (m_iaonSession.AllAdapters.TryGetAnyAdapterByName(adapterID, out adapter, out collection)) return adapter; collection = GetRequestedCollection(requestInfo); SendResponse(requestInfo, false, "Failed to find adapter named \"{0}\".", adapterID); } } return null; }