vgquotes/Lib/Portoa.xml

804 lines
37 KiB
XML

<?xml version="1.0"?>
<doc>
<assembly>
<name>Portoa</name>
</assembly>
<members>
<member name="T:Portoa.Security.NullAllowingPasswordProtector">
<summary>
Password protector that allows nulls
</summary>
</member>
<member name="T:Portoa.Security.SaltedPasswordProtector">
<summary>
Password protector that hashes the password using a salt, and stores it
as a hex-encoded string
</summary>
</member>
<member name="T:Portoa.Security.IPasswordProtected">
<summary>
Represents an object that has a password associated with it
</summary>
</member>
<member name="M:Portoa.Security.IPasswordProtected.VerifyPassword(System.String)">
<summary>
Verifies the legitimacy of a potential password
</summary>
<param name="password">The password to verify</param>
</member>
<member name="M:Portoa.Security.IPasswordProtected.ChangePassword(System.String)">
<summary>
Changes the object's password to the new password
</summary>
<param name="newPassword">The new password</param>
</member>
<member name="M:Portoa.Security.SaltedPasswordProtector.VerifyPassword(System.String)">
<summary>
Verifies the given password.
</summary>
<returns>Returns false if <paramref name="potentialPassword"/> is null or empty</returns>
</member>
<member name="P:Portoa.Security.SaltedPasswordProtector.Salt">
<summary>
The salt used to hash the password as a hex-encoded string
</summary>
</member>
<member name="P:Portoa.Security.SaltedPasswordProtector.Password">
<summary>
The password as a hex-encoded string
</summary>
</member>
<member name="P:Portoa.Security.SaltedPasswordProtector.IsSet">
<summary>
Gets whether or not the password has been set
</summary>
</member>
<member name="M:Portoa.Persistence.EntityExtensions.IsTransient``1(Portoa.Persistence.IIdentifiable{``0})">
<summary>
Determines if the entity has already been persisted
</summary>
</member>
<member name="M:Portoa.Persistence.EntityExtensions.ToDto``1(System.Object)">
<summary>
Converts an entity to its DTO representation. If the entity does not implement
<see cref="T:Portoa.Persistence.IDtoMappable`1"/>, then an empty <typeparamref name="TDto"/> object
is returned.
</summary>
<typeparam name="TDto">The type to map the entity to</typeparam>
</member>
<member name="M:Portoa.Util.CollectionExtensions.AddRange``1(System.Collections.Generic.ICollection{``0},System.Collections.Generic.IEnumerable{``0})">
<summary>
Iterates over the <paramref name="collectionToAdd"/> and adds each item
to the <paramref name="source"/> collection
</summary>
</member>
<member name="T:Portoa.Persistence.IdentifiableDto">
<summary>
Convenience class for data transfer objects that have an integral
identifier
</summary>
</member>
<member name="T:Portoa.Persistence.IIdentifiable`1">
<summary>
Represents an objec that is uniquely identifiable
</summary>
<typeparam name="T">The identifier type</typeparam>
</member>
<member name="P:Portoa.Persistence.IIdentifiable`1.Id">
<summary>
The unique identifier of this object
</summary>
</member>
<member name="T:Portoa.Persistence.Entity`1">
<summary>
Represents a domain object that can be persisted by a <c cref="T:Portoa.Persistence.IRepository`2">repository</c>
</summary>
<typeparam name="TId">The entity's identifier type</typeparam>
</member>
<member name="T:Portoa.Json.JsonNetSerializer">
<summary>
Object-to-JSON serializer backed by <c>JSON.NET</c>
</summary>
</member>
<member name="T:Portoa.Json.IJsonSerializer">
<summary>
Object-to-JSON serializer
</summary>
</member>
<member name="M:Portoa.Json.IJsonSerializer.Serialize(System.Object)">
<summary>
Serializes an object to a JSON string
</summary>
<param name="o">The object to serialize</param>
<returns>A JSON string representing <paramref name="o"/></returns>
</member>
<member name="M:Portoa.Json.IJsonSerializer.Deserialize``1(System.String)">
<summary>
Deserializes a JSON string into an object
</summary>
<typeparam name="T">The type of object to deserialize the JSON to</typeparam>
<param name="json">The JSON string to deserialize</param>
<returns>An object of type <typeparamref name="T"/> representing the given <paramref name="json"/></returns>
</member>
<member name="T:Portoa.Search.SearchResult`1">
<summary>
Represents a search result
</summary>
</member>
<member name="P:Portoa.Search.SearchResult`1.Score">
<summary>
A value (between 0 and 1, the higher the better) representing how good
the match is between the search query and the value
</summary>
</member>
<member name="P:Portoa.Search.SearchResult`1.Record">
<summary>
The matched object
</summary>
</member>
<member name="T:Portoa.Search.ISearchable">
<summary>
Indicates that this object is searchable
</summary>
</member>
<member name="P:Portoa.Search.ISearchable.ShouldIndex">
<summary>
Gets whether or not the index for this object should be updated
(a dirty flag, of sorts)
</summary>
</member>
<member name="M:Portoa.Util.LinqExtensions.Implode``1(System.Collections.Generic.IEnumerable{``0},System.Func{``0,System.String},System.String)">
<summary>
Implodes an enumeration given a selector function and a separator
</summary>
</member>
<member name="M:Portoa.Util.LinqExtensions.Walk``1(System.Collections.Generic.IEnumerable{``0},System.Action{``0})">
<summary>
Performs the specified action on each item in the collection. The action will execute immediately.
Use <c cref="M:Portoa.Util.LinqExtensions.WalkDeferred``1(System.Collections.Generic.IEnumerable{``0},System.Action{``0})">WalkDeferred</c> if deferred execution is needed.
</summary>
<seealso cref="M:Portoa.Util.LinqExtensions.WalkDeferred``1(System.Collections.Generic.IEnumerable{``0},System.Action{``0})"/>
</member>
<member name="M:Portoa.Util.LinqExtensions.WalkDeferred``1(System.Collections.Generic.IEnumerable{``0},System.Action{``0})">
<summary>
Performs the specified action on each item in the collection. The action will not execute until the collection
is enumerated. Use <c cref="M:Portoa.Util.LinqExtensions.Walk``1(System.Collections.Generic.IEnumerable{``0},System.Action{``0})">Walk</c> if deferred execution is not needed.
</summary>
<seealso cref="M:Portoa.Util.LinqExtensions.Walk``1(System.Collections.Generic.IEnumerable{``0},System.Action{``0})"/>
</member>
<member name="T:JetBrains.Annotations.LocalizationRequiredAttribute">
<summary>
Indicates that marked element should be localized or not.
</summary>
</member>
<member name="M:JetBrains.Annotations.LocalizationRequiredAttribute.#ctor(System.Boolean)">
<summary>
Initializes a new instance of the <see cref="T:JetBrains.Annotations.LocalizationRequiredAttribute"/> class.
</summary>
<param name="required"><c>true</c> if a element should be localized; otherwise, <c>false</c>.</param>
</member>
<member name="M:JetBrains.Annotations.LocalizationRequiredAttribute.Equals(System.Object)">
<summary>
Returns whether the value of the given object is equal to the current <see cref="T:JetBrains.Annotations.LocalizationRequiredAttribute"/>.
</summary>
<param name="obj">The object to test the value equality of. </param>
<returns>
<c>true</c> if the value of the given object is equal to that of the current; otherwise, <c>false</c>.
</returns>
</member>
<member name="M:JetBrains.Annotations.LocalizationRequiredAttribute.GetHashCode">
<summary>
Returns the hash code for this instance.
</summary>
<returns>A hash code for the current <see cref="T:JetBrains.Annotations.LocalizationRequiredAttribute"/>.</returns>
</member>
<member name="P:JetBrains.Annotations.LocalizationRequiredAttribute.Required">
<summary>
Gets a value indicating whether a element should be localized.
<value><c>true</c> if a element should be localized; otherwise, <c>false</c>.</value>
</summary>
</member>
<member name="T:JetBrains.Annotations.StringFormatMethodAttribute">
<summary>
Indicates that marked method builds string by format pattern and (optional) arguments.
Parameter, which contains format string, should be given in constructor.
The format string should be in <see cref="M:System.String.Format(System.IFormatProvider,System.String,System.Object[])"/> -like form
</summary>
</member>
<member name="M:JetBrains.Annotations.StringFormatMethodAttribute.#ctor(System.String)">
<summary>
Initializes new instance of StringFormatMethodAttribute
</summary>
<param name="formatParameterName">Specifies which parameter of an annotated method should be treated as format-string</param>
</member>
<member name="P:JetBrains.Annotations.StringFormatMethodAttribute.FormatParameterName">
<summary>
Gets format parameter name
</summary>
</member>
<member name="T:JetBrains.Annotations.InvokerParameterNameAttribute">
<summary>
Indicates that the function argument should be string literal and match one of the parameters of the caller function.
For example, <see cref="T:System.ArgumentNullException"/> has such parameter.
</summary>
</member>
<member name="T:JetBrains.Annotations.AssertionMethodAttribute">
<summary>
Indicates that the marked method is assertion method, i.e. it halts control flow if one of the conditions is satisfied.
To set the condition, mark one of the parameters with <see cref="T:JetBrains.Annotations.AssertionConditionAttribute"/> attribute
</summary>
<seealso cref="T:JetBrains.Annotations.AssertionConditionAttribute"/>
</member>
<member name="T:JetBrains.Annotations.AssertionConditionAttribute">
<summary>
Indicates the condition parameter of the assertion method.
The method itself should be marked by <see cref="T:JetBrains.Annotations.AssertionMethodAttribute"/> attribute.
The mandatory argument of the attribute is the assertion type.
</summary>
<seealso cref="T:JetBrains.Annotations.AssertionConditionType"/>
</member>
<member name="M:JetBrains.Annotations.AssertionConditionAttribute.#ctor(JetBrains.Annotations.AssertionConditionType)">
<summary>
Initializes new instance of AssertionConditionAttribute
</summary>
<param name="conditionType">Specifies condition type</param>
</member>
<member name="P:JetBrains.Annotations.AssertionConditionAttribute.ConditionType">
<summary>
Gets condition type
</summary>
</member>
<member name="T:JetBrains.Annotations.AssertionConditionType">
<summary>
Specifies assertion type. If the assertion method argument satisifes the condition, then the execution continues.
Otherwise, execution is assumed to be halted
</summary>
</member>
<member name="F:JetBrains.Annotations.AssertionConditionType.IS_TRUE">
<summary>
Indicates that the marked parameter should be evaluated to true
</summary>
</member>
<member name="F:JetBrains.Annotations.AssertionConditionType.IS_FALSE">
<summary>
Indicates that the marked parameter should be evaluated to false
</summary>
</member>
<member name="F:JetBrains.Annotations.AssertionConditionType.IS_NULL">
<summary>
Indicates that the marked parameter should be evaluated to null value
</summary>
</member>
<member name="F:JetBrains.Annotations.AssertionConditionType.IS_NOT_NULL">
<summary>
Indicates that the marked parameter should be evaluated to not null value
</summary>
</member>
<member name="T:JetBrains.Annotations.TerminatesProgramAttribute">
<summary>
Indicates that the marked method unconditionally terminates control flow execution.
For example, it could unconditionally throw exception
</summary>
</member>
<member name="T:JetBrains.Annotations.CanBeNullAttribute">
<summary>
Indicates that the value of marked element could be <c>null</c> sometimes, so the check for <c>null</c> is necessary before its usage
</summary>
</member>
<member name="T:JetBrains.Annotations.NotNullAttribute">
<summary>
Indicates that the value of marked element could never be <c>null</c>
</summary>
</member>
<member name="T:JetBrains.Annotations.CannotApplyEqualityOperatorAttribute">
<summary>
Indicates that the value of marked type (or its derivatives) cannot be compared using '==' or '!=' operators.
There is only exception to compare with <c>null</c>, it is permitted
</summary>
</member>
<member name="T:JetBrains.Annotations.BaseTypeRequiredAttribute">
<summary>
When applied to target attribute, specifies a requirement for any type which is marked with
target attribute to implement or inherit specific type or types
</summary>
<example>
<code>
[BaseTypeRequired(typeof(IComponent)] // Specify requirement
public class ComponentAttribute : Attribute
{}
[Component] // ComponentAttribute requires implementing IComponent interface
public class MyComponent : IComponent
{}
</code>
</example>
</member>
<member name="M:JetBrains.Annotations.BaseTypeRequiredAttribute.#ctor(System.Type[])">
<summary>
Initializes new instance of BaseTypeRequiredAttribute
</summary>
<param name="baseTypes">Specifies which types are required</param>
</member>
<member name="P:JetBrains.Annotations.BaseTypeRequiredAttribute.BaseTypes">
<summary>
Gets enumerations of specified base types
</summary>
</member>
<member name="T:JetBrains.Annotations.UsedImplicitlyAttribute">
<summary>
Indicates that the marked symbol is used implicitly (e.g. via reflection, in external library),
so this symbol will not be marked as unused (as well as by other usage inspections)
</summary>
</member>
<member name="P:JetBrains.Annotations.UsedImplicitlyAttribute.TargetFlags">
<summary>
Gets value indicating what is meant to be used
</summary>
</member>
<member name="T:JetBrains.Annotations.MeansImplicitUseAttribute">
<summary>
Should be used on attributes and causes ReSharper to not mark symbols marked with such attributes as unused (as well as by other usage inspections)
</summary>
</member>
<member name="P:JetBrains.Annotations.MeansImplicitUseAttribute.TargetFlags">
<summary>
Gets value indicating what is meant to be used
</summary>
</member>
<member name="F:JetBrains.Annotations.ImplicitUseKindFlags.Access">
<summary>
Only entity marked with attribute considered used
</summary>
</member>
<member name="F:JetBrains.Annotations.ImplicitUseKindFlags.Assign">
<summary>
Indicates implicit assignment to a member
</summary>
</member>
<member name="F:JetBrains.Annotations.ImplicitUseKindFlags.Instantiated">
<summary>
Indicates implicit instantiation of a type
</summary>
</member>
<member name="T:JetBrains.Annotations.ImplicitUseTargetFlags">
<summary>
Specify what is considered used implicitly when marked with <see cref="T:JetBrains.Annotations.MeansImplicitUseAttribute"/> or <see cref="T:JetBrains.Annotations.UsedImplicitlyAttribute"/>
</summary>
</member>
<member name="F:JetBrains.Annotations.ImplicitUseTargetFlags.Members">
<summary>
Members of entity marked with attribute are considered used
</summary>
</member>
<member name="F:JetBrains.Annotations.ImplicitUseTargetFlags.WithMembers">
<summary>
Entity marked with attribute and all its members considered used
</summary>
</member>
<member name="T:Portoa.Logging.AbstractLogger">
<summary>
Empty implementation of <see cref="T:Portoa.Logging.ILogger"/>
</summary>
</member>
<member name="T:Portoa.Logging.ILogger">
<summary>
Exposes an interface for logging
</summary>
</member>
<member name="M:Portoa.Logging.ILogger.Debug(System.Object)">
<summary>
Logs a debug message
</summary>
</member>
<member name="M:Portoa.Logging.ILogger.Info(System.Object)">
<summary>
Logs an informational message
</summary>
</member>
<member name="M:Portoa.Logging.ILogger.Warn(System.Object)">
<summary>
Logs a warning message
</summary>
</member>
<member name="M:Portoa.Logging.ILogger.Error(System.Object)">
<summary>
Logs an error message
</summary>
</member>
<member name="P:Portoa.Logging.ILogger.IsDebugEnabled">
<summary>
Gets whether or not <c>Debug</c> messages should be logged
</summary>
</member>
<member name="P:Portoa.Logging.ILogger.IsInfoEnabled">
<summary>
Gets whether or not <c>Info</c> messages should be logged
</summary>
</member>
<member name="P:Portoa.Logging.ILogger.IsWarnEnabled">
<summary>
Gets whether or not <c>Warn</c> messages should be logged
</summary>
</member>
<member name="P:Portoa.Logging.ILogger.IsErrorEnabled">
<summary>
Gets whether or not <c>Error</c> messages should be logged
</summary>
</member>
<member name="M:Portoa.Logging.AbstractLogger.Log(System.Object)">
<summary>
Logs the specified message
</summary>
<param name="message">The message to log</param>
</member>
<member name="T:Portoa.Search.ISearchService`2">
<summary>
Exposes methods to perform full-text searching and indexing
</summary>
<typeparam name="T">The type of entity to search/index</typeparam>
</member>
<member name="M:Portoa.Search.ISearchService`2.FindByIds(System.Collections.Generic.IEnumerable{`1})">
<summary>
Gets all indexable entities that match the given set of <paramref name="ids"/>
</summary>
</member>
<member name="M:Portoa.Search.ISearchService`2.GetAllIndexableRecords">
<summary>
Retrieves all indexable records
</summary>
</member>
<member name="M:Portoa.Search.ISearchService`2.ConvertIdFromStringValue(System.String)">
<summary>
Converts the string value of the identifier (as stored in the search index) to
its proper type
</summary>
<param name="idValue">The string value of the identifier</param>
</member>
<member name="M:Portoa.Security.SecurityExtensions.ComputeHash(System.String,System.String)">
<summary>
Computes the <see cref="T:System.Security.Cryptography.HMACSHA256"/> hash of the string using the given
salt and <c cref="P:System.Text.Encoding.UTF8">UTF8 Encoding</c>
</summary>
<param name="plainText"></param>
<param name="salt"></param>
<returns></returns>
</member>
<member name="M:Portoa.Security.SecurityExtensions.Base64Encode(System.Byte[])">
<summary>
Base-64 encodes the byte array
</summary>
</member>
<member name="M:Portoa.Security.SecurityExtensions.ToHex(System.Byte[])">
<summary>
Converts a byte array to a hex-encoded string
</summary>
</member>
<member name="T:Portoa.Security.DefaultPasswordProtector">
<summary>
Default password protector that does not allow null or empty passwords
</summary>
</member>
<member name="T:Portoa.Search.ISearcher`1">
<summary>
Exposes an interface to perform a full-text search
</summary>
</member>
<member name="M:Portoa.Search.ISearcher`1.Search(System.String,System.Int32)">
<summary>
Searches for records based on the given search query
</summary>
<param name="query">The search term(s) to search for</param>
<param name="maxResults">The maximum number of results to return (<c>0</c> is unlimited); the default is <c>10</c></param>
</member>
<member name="T:Portoa.Search.ISearcher`2">
<summary>
Exposes an interface to perform a full-text search on a collection of entities
</summary>
</member>
<member name="M:Portoa.Search.ISearcher`2.Search(System.String,System.Int32)">
<summary>
Searches for records based on the given search query
</summary>
<param name="query">The search term(s) to search for</param>
<param name="maxResults">The maximum number of results to return (<c>0</c> is unlimited); the default is <c>10</c></param>
</member>
<member name="T:Portoa.Persistence.IDtoMappable`1">
<summary>
Exposes an interface to map an entity to a DTO representation
</summary>
<typeparam name="TDto">The DTO to map to</typeparam>
<seealso cref="T:Portoa.Persistence.IdentifiableDto"/>
</member>
<member name="M:Portoa.Persistence.IDtoMappable`1.ToDto">
<summary>
Returns a DTO representation of this object
</summary>
</member>
<member name="T:Portoa.Validation.DataAnnotations.GreaterThanZeroAttribute">
<summary>
Validates that the value is greater than zero
</summary>
</member>
<member name="M:Portoa.Util.ReflectionExtensions.GetFriendlyName(System.Type,System.Boolean)">
<summary>
Gets a human-readable string representing the given type
</summary>
<parparam name="fullyQualified">Whether to use the fully qualified name of each type</parparam>
</member>
<member name="T:Portoa.Search.SearchIndexException">
<summary>
Raised when an error occurs while reading/writing a search index
</summary>
</member>
<member name="T:Portoa.Logging.ConsoleLogger">
<summary>
<see cref="T:Portoa.Logging.ILogger"/> implementation that writes to the <c>Console</c>
</summary>
</member>
<member name="T:Portoa.Persistence.IUnitOfWork">
<summary>
Represents a transaction
</summary>
</member>
<member name="M:Portoa.Persistence.IUnitOfWork.Start">
<summary>
Starts a transaction
</summary>
<exception cref="T:Portoa.Persistence.PersistenceException">If a transaction has already been started</exception>
</member>
<member name="M:Portoa.Persistence.IUnitOfWork.Commit">
<summary>
Commits a transaction
</summary>
<exception cref="T:Portoa.Persistence.PersistenceException">If a transaction has not been started</exception>
</member>
<member name="M:Portoa.Persistence.IUnitOfWork.Rollback">
<summary>
Rolls back a transaction
</summary>
<exception cref="T:Portoa.Persistence.PersistenceException">If a transaction has not been started</exception>
</member>
<member name="P:Portoa.Persistence.IUnitOfWork.IsActive">
<summary>
Gets whether or not the transaction is currently active
</summary>
</member>
<member name="T:Portoa.Search.DefaultSearchService`1">
<summary>
Default search service implementation for entities with integral identifiers
</summary>
<typeparam name="T">The entity type</typeparam>
</member>
<member name="M:Portoa.Testing.DbTestingUtility.DropDatabase">
<summary>
Drops the temp database and resets the generated database name
</summary>
</member>
<member name="M:Portoa.Testing.DbTestingUtility.CreateDatabase">
<summary>
Creates a temporary database with a unique name
</summary>
</member>
<member name="M:Portoa.Testing.DbTestingUtility.RunSqlScript(Portoa.Testing.ISqlScript)">
<summary>
Executes a SQL script on the test database
</summary>
</member>
<member name="P:Portoa.Testing.DbTestingUtility.ConnectionString">
<summary>
Gets the connection string for the fake database
</summary>
</member>
<member name="P:Portoa.Testing.DbTestingUtility.DefaultConnectionString">
<summary>
Sets the default connection string (do not include the initial catalog)
</summary>
</member>
<member name="T:Portoa.Persistence.IRepository`1">
<summary>
Provides a CRUD interface to a persistence medium for entities that have an
integral identifier
</summary>
<typeparam name="T">The entity's type</typeparam>
</member>
<member name="T:Portoa.Persistence.IRepository`2">
<summary>
Provides a CRUD interface to a persistence medium
</summary>
<typeparam name="T">The entity's type</typeparam>
<typeparam name="TId">The entity identifier's type</typeparam>
</member>
<member name="M:Portoa.Persistence.IRepository`2.Save(`0)">
<summary>
Persists an entity (inserts or updates)
</summary>
<param name="entity">The entity to save</param>
</member>
<member name="M:Portoa.Persistence.IRepository`2.Reload(`0)">
<summary>
Reloads an entity from the persistence medium
</summary>
<param name="entity">The entity to reload</param>
</member>
<member name="M:Portoa.Persistence.IRepository`2.Delete(`1)">
<summary>
Deletes an entity
</summary>
<param name="id">The unique identifier of the entity to delete</param>
</member>
<member name="M:Portoa.Persistence.IRepository`2.FindById(`1)">
<summary>
Finds an entity by its unique identifier
</summary>
<param name="id">The unique identifier of the entity to locate</param>
<exception cref="T:Portoa.Persistence.EntityNotFoundException`2"/>
</member>
<member name="P:Portoa.Persistence.IRepository`2.Records">
<summary>
Equivalent of "select *"
</summary>
</member>
<member name="T:Portoa.Persistence.EntityNotFoundException">
<summary>
Raised when an entity was not found
</summary>
</member>
<member name="T:Portoa.Persistence.PersistenceException">
<summary>
Raised when an error occurred in the persistence layer
</summary>
</member>
<member name="T:Portoa.Persistence.EntityNotFoundException`2">
<summary>
Raised when an entity was not found
</summary>
<typeparam name="T">The entity type</typeparam>
<typeparam name="TId">The entity's identifier type</typeparam>
</member>
<member name="T:Portoa.Logging.NullLogger">
<summary>
Logger that does nothing
</summary>
</member>
<member name="T:Portoa.Logging.DebugLogger">
<summary>
<see cref="T:Portoa.Logging.ILogger"/> implementation that writes using system diagnostic tool
</summary>
</member>
<member name="T:Portoa.Persistence.UnitOfWorkAttribute">
<summary>
Signifies that this method should be executed within a transaction
</summary>
</member>
<member name="M:Portoa.Logging.LoggerExtensions.Debug(Portoa.Logging.ILogger,System.String,System.Object[])">
<summary>
Logs a formatted <c>Debug</c> message
</summary>
<see cref="M:Portoa.Logging.ILogger.Debug(System.Object)"/>
</member>
<member name="M:Portoa.Logging.LoggerExtensions.Info(Portoa.Logging.ILogger,System.String,System.Object[])">
<summary>
Logs a formatted <c>Info</c> message
</summary>
<see cref="M:Portoa.Logging.ILogger.Info(System.Object)"/>
</member>
<member name="M:Portoa.Logging.LoggerExtensions.Warn(Portoa.Logging.ILogger,System.String,System.Object[])">
<summary>
Logs a formatted <c>Warn</c> message
</summary>
<see cref="M:Portoa.Logging.ILogger.Warn(System.Object)"/>
</member>
<member name="M:Portoa.Logging.LoggerExtensions.Exception(Portoa.Logging.ILogger,System.Exception)">
<summary>
Logs an exception using <see cref="M:Portoa.Logging.ILogger.Debug(System.Object)"/>
</summary>
<see cref="M:Portoa.Logging.ILogger.Debug(System.Object)"/>
</member>
<member name="T:Portoa.Validation.DataAnnotations.Validator">
<summary>
TODO: add reflection cache
</summary>
</member>
<member name="M:Portoa.Validation.DataAnnotations.Validator.TryValidateObject(System.Object,System.ComponentModel.DataAnnotations.ValidationContext,System.Collections.Generic.ICollection{System.ComponentModel.DataAnnotations.ValidationResult},System.Boolean)">
<summary>
Extension to System.ComponentModel.DataAnnotations.Validator.TryValidateObject(). This method validates
the object, its properties and its fields.
</summary>
</member>
<member name="M:Portoa.Util.DateTimeExtensions.AsUnixTimestamp(System.Int32)">
<summary>
Converts a Unix timestamp to a <see cref="T:System.DateTime"/>
</summary>
</member>
<member name="M:Portoa.Util.DateTimeExtensions.ToUnixTimestamp(System.DateTime)">
<summary>
Converts a <see cref="T:System.DateTime"/> to a Unix timestamp (number of seconds since
1970-01-01)
</summary>
</member>
<member name="T:Portoa.Search.CompositeIndexBuilder">
<summary>
Index builder that will build/update indexes for each of its child index builders
</summary>
</member>
<member name="T:Portoa.Search.ISearchIndexBuilder`1">
<summary>
Exposes an interface to build and update a search index
</summary>
</member>
<member name="M:Portoa.Search.ISearchIndexBuilder`1.BuildIndex">
<summary>
(Re)builds the search index
</summary>
</member>
<member name="M:Portoa.Search.ISearchIndexBuilder`1.UpdateIndex(`0)">
<summary>
Updates the index for the specified <paramref name="indexableObject"/>
</summary>
<param name="indexableObject">The object that needs its index updated</param>
</member>
<member name="M:Portoa.Search.ISearchIndexBuilder`1.DeleteIndex(`0)">
<summary>
Deletes the index for the specified <paramref name="indexableObject"/>
</summary>
<param name="indexableObject">The object that needs its index deleted</param>
</member>
<member name="M:Portoa.Search.CompositeIndexBuilder.Add``1(Portoa.Search.ISearchIndexBuilder{``0})">
<summary>
Adds an index builder to the collection
</summary>
</member>
<member name="T:Portoa.Validation.DataAnnotations.EmailAttribute">
<summary>
Validates that a string is a valid email address. Set AllowEmpty to true
if null and empty strings should not be validated.
</summary>
</member>
<member name="P:Portoa.Validation.DataAnnotations.EmailAttribute.AllowEmpty">
<summary>
Gets or sets whether to allow empty strings
</summary>
</member>
<member name="T:Portoa.Search.ISearchIndexBuilder`2">
<summary>
Exposes an interface to build and update a search index for entities
</summary>
</member>
<member name="M:Portoa.Search.ISearchIndexBuilder`2.BuildIndex">
<summary>
(Re)builds the search index
</summary>
</member>
<member name="M:Portoa.Search.ISearchIndexBuilder`2.UpdateIndex(`0)">
<summary>
Updates the index for the specified <paramref name="entity"/>
</summary>
<param name="entity">The entity that needs its index updated</param>
</member>
<member name="M:Portoa.Search.ISearchIndexBuilder`2.DeleteIndex(`0)">
<summary>
Deletes the index for the specified <paramref name="entity"/>
</summary>
<param name="entity">The entity that needs its index deleted</param>
</member>
<member name="M:Portoa.Logging.LoggingExtensions.IsLoggable(System.Reflection.ICustomAttributeProvider)">
<summary>
Determines if this object should be logged
</summary>
</member>
<member name="T:Portoa.Logging.DoNotLogAttribute">
<summary>
Signifies that this object should not be logged
</summary>
</member>
<member name="M:Portoa.Json.JsonExtensions.Deserialize(Portoa.Json.IJsonSerializer,System.String,System.Type)">
<summary>
Convenience method for deserializing json when the type cannot be known
at compile-time
</summary>
<param name="json">The JSON string to deserialize into an object</param>
<param name="type">The type of object that should be deserialized</param>
</member>
</members>
</doc>