ICastleHillExtendedAPI
ICastleHillExtendedAPI (implemented by core.APIFacade) provides access to all of the "extended" methods not available through the standard Archer APIs.
Most methods on this interface include a boolean throwExceptionIfUnavailable parameter which when true (the default) will cause an ExtensionsUnavailable to
be thrown if extensions are not available for the target Archer instance. Alternately, when this parameter is explicitly set to false, no exception will be raised and instead
an empty enumerable (for IEnumerable<T> result types) or a null (for all other reference types) will be returned if extensions are not available.
The resolver classes (e.g. IMetadataResolver, IReportResolver, etc.) will always pass throwExceptionIfUnavailable: false when they call these methods, so in those cases, a null
or empty IEnumerable will be returned in the absence of extensions. For example, core.Metadata.AllSolutions will return an IEnumerable<IArcherSolution> containing
all solutions in the target Archer instance if extensions are available, but will simply return an empty IEnumerable<IArcherSolution> (having a Count() of 0)
if extensions are not available.
The two methods lacking this parameter (GetArcherApplicationDetails() and GetAllDatafeeds()) behave differently, falling back to more restricted API methods that are
available from a standard Archer instance (see their comments below).
|
IContentResolver
IContentResolver provides access to Archer content via the webservice Search API, returning Archer content records as either XElement objects (from
the Archer web services Search API) or as IArcherContent dictionary objects (via the REST API). Returned content may be further converted into IArcherContentAccess
results for simplified access via the ArcherContentExtensions.ContentAccess
extension method.
IArcherContentAccess records in turn may be edited by calling the ForEdit() method on that interface, returning an IArcherContentEdit
which allows the values in each editable field of the record to be modified. The resulting changes can be persisted back to the Archer instance by passing the
modified IArcherContentEdit record to the [IContentResolver.Update()][xref:Estrelica.Archer.Utility.IContentResolver.Update*] method.
|