Merge with 4.8.0

This commit is contained in:
Matt@MBP-PC.Home
2012-07-04 06:11:32 -01:00
18 changed files with 447 additions and 2419 deletions

Binary file not shown.

View File

@@ -1,750 +0,0 @@
<?xml version="1.0"?>
<doc>
<assembly>
<name>Examine</name>
</assembly>
<members>
<member name="M:Examine.SearchResult.Equals(System.Object)">
<summary>
Override this method so that the Distinct() operator works
</summary>
<param name="obj"></param>
<returns></returns>
</member>
<member name="M:Examine.SearchResult.GetHashCode">
<summary>
Override this method so that the Distinct() operator works
</summary>
<returns></returns>
</member>
<member name="P:Examine.SearchResult.Item(System.Int32)">
<summary>
Returns the key value pair for the index specified
</summary>
<param name="resultIndex"></param>
<returns></returns>
</member>
<member name="P:Examine.SearchResult.Item(System.String)">
<summary>
Returns the value for the key specified
</summary>
<param name="key"></param>
<returns></returns>
</member>
<member name="T:Examine.ISearcher">
<summary>
An interface representing an Examine Searcher
</summary>
</member>
<member name="M:Examine.ISearcher.Search(System.String,System.Boolean)">
<summary>
Searches the specified search text in all fields of the index
</summary>
<param name="searchText">The search text.</param>
<param name="useWildcards">if set to <c>true</c> the search will use wildcards.</param>
<returns>Search Results</returns>
</member>
<member name="M:Examine.ISearcher.Search(Examine.SearchCriteria.ISearchCriteria)">
<summary>
Searches using the specified search query parameters
</summary>
<param name="searchParameters">The search parameters.</param>
<returns>Search Results</returns>
</member>
<member name="M:Examine.ISearcher.CreateSearchCriteria">
<summary>
Creates a search criteria instance as required by the implementation
</summary>
<returns></returns>
</member>
<member name="M:Examine.ISearcher.CreateSearchCriteria(System.String)">
<summary>
Creates a search criteria instance as required by the implementation
</summary>
<param name="type">The type of index (i.e. Media or Content )</param>
</member>
<member name="M:Examine.ISearcher.CreateSearchCriteria(System.String,Examine.SearchCriteria.BooleanOperation)">
<summary>
Creates a search criteria instance as required by the implementation
</summary>
<param name="type">The type of data in the index.</param>
<param name="defaultOperation">The default operation.</param>
<returns>
An instance of <see cref="T:Examine.SearchCriteria.ISearchCriteria"/>
</returns>
</member>
<member name="T:Examine.IIndexer">
<summary>
Interface to represent an Examine Indexer
</summary>
</member>
<member name="M:Examine.IIndexer.ReIndexNode(System.Xml.Linq.XElement,System.String)">
<summary>
Forces a particular XML node to be reindexed
</summary>
<param name="node">XML node to reindex</param>
<param name="type">Type of index to use</param>
</member>
<member name="M:Examine.IIndexer.DeleteFromIndex(System.String)">
<summary>
Deletes a node from the index
</summary>
<param name="nodeId">Node to delete</param>
</member>
<member name="M:Examine.IIndexer.IndexAll(System.String)">
<summary>
Re-indexes all data for the index type specified
</summary>
<param name="type"></param>
</member>
<member name="M:Examine.IIndexer.RebuildIndex">
<summary>
Rebuilds the entire index from scratch for all index types
</summary>
</member>
<member name="P:Examine.IIndexer.IndexerData">
<summary>
Gets/sets the index criteria to create the index with
</summary>
<value>The indexer data.</value>
</member>
<member name="M:Examine.ExamineManager.Search(Examine.SearchCriteria.ISearchCriteria)">
<summary>
Uses the default provider specified to search
</summary>
<param name="searchParameters"></param>
<returns></returns>
<remarks>This is just a wrapper for the default provider</remarks>
</member>
<member name="M:Examine.ExamineManager.Search(System.String,System.Boolean)">
<summary>
Uses the default provider specified to search
</summary>
<param name="searchText"></param>
<param name="maxResults"></param>
<param name="useWildcards"></param>
<returns></returns>
</member>
<member name="M:Examine.ExamineManager.ReIndexNode(System.Xml.Linq.XElement,System.String,System.Collections.Generic.IEnumerable{Examine.Providers.BaseIndexProvider})">
<summary>
Reindex nodes for the providers specified
</summary>
<param name="node"></param>
<param name="type"></param>
<param name="providers"></param>
</member>
<member name="M:Examine.ExamineManager.DeleteFromIndex(System.String,System.Collections.Generic.IEnumerable{Examine.Providers.BaseIndexProvider})">
<summary>
Deletes index for node for the specified providers
</summary>
<param name="nodeId"></param>
<param name="providers"></param>
</member>
<member name="M:Examine.ExamineManager.ReIndexNode(System.Xml.Linq.XElement,System.String)">
<summary>
Reindex nodes for all providers
</summary>
<param name="node"></param>
<param name="type"></param>
</member>
<member name="M:Examine.ExamineManager.DeleteFromIndex(System.String)">
<summary>
Deletes index for node for all providers
</summary>
<param name="node"></param>
</member>
<member name="M:Examine.ExamineManager.CreateSearchCriteria">
<summary>
Creates search criteria that defaults to IndexType.Any and BooleanOperation.And
</summary>
<returns></returns>
</member>
<member name="P:Examine.ExamineManager.Instance">
<summary>
Singleton
</summary>
</member>
<member name="T:Examine.IndexedNode">
<summary>
Simple class to store the definition of an indexed node
</summary>
</member>
<member name="T:Examine.Providers.IndexProviderCollection">
<summary>
A collection of Examine Index Providers
</summary>
</member>
<member name="M:Examine.Providers.IndexProviderCollection.Add(System.Configuration.Provider.ProviderBase)">
<summary>
Adds a provider to the collection.
</summary>
<param name="provider">The provider to be added.</param>
<exception cref="T:System.NotSupportedException">
The collection is read-only.
</exception>
<exception cref="T:System.ArgumentNullException">
<paramref name="provider"/> is null.
</exception>
<exception cref="T:System.ArgumentException">
The <see cref="P:System.Configuration.Provider.ProviderBase.Name"/> of <paramref name="provider"/> is null.
- or -
The length of the <see cref="P:System.Configuration.Provider.ProviderBase.Name"/> of <paramref name="provider"/> is less than 1.
</exception>
<PermissionSet>
<IPermission class="System.Security.Permissions.SecurityPermission, mscorlib, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" version="1" Flags="UnmanagedCode, ControlEvidence"/>
</PermissionSet>
</member>
<member name="M:Examine.Providers.IndexProviderCollection.System#Collections#Generic#IEnumerable{Examine#Providers#BaseIndexProvider}#GetEnumerator">
<summary>
Gets the enumerator.
</summary>
<returns></returns>
</member>
<member name="M:Examine.Providers.IndexProviderCollection.System#Collections#IEnumerable#GetEnumerator">
<summary>
Returns an object that implements the <see cref="T:System.Collections.IEnumerator"/> interface to iterate through the collection.
</summary>
<returns>
An object that implements <see cref="T:System.Collections.IEnumerator"/> to iterate through the collection.
</returns>
</member>
<member name="P:Examine.Providers.IndexProviderCollection.Item(System.String)">
<summary>
Gets the <see cref="T:Examine.Providers.BaseIndexProvider"/> with the specified name.
</summary>
<value></value>
</member>
<member name="P:Examine.Providers.IndexProviderCollection.Item(System.Int32)">
<summary>
Gets the <see cref="T:Examine.Providers.BaseIndexProvider"/> at the specified index.
</summary>
<value></value>
</member>
<member name="M:Examine.Providers.BaseSearchProvider.Search(System.String,System.Boolean)">
<summary>
Simple search method which should default to searching content nodes
</summary>
<param name="searchText"></param>
<param name="maxResults"></param>
<param name="useWildcards"></param>
<returns></returns>
</member>
<member name="M:Examine.Providers.BaseSearchProvider.Search(Examine.SearchCriteria.ISearchCriteria)">
<summary>
Searches the data source using the Examine Fluent API
</summary>
<param name="searchParams">The fluent API search.</param>
<returns></returns>
</member>
<member name="M:Examine.Providers.BaseSearchProvider.CreateSearchCriteria">
<summary>
Creates an instance of SearchCriteria for the provider
</summary>
<returns></returns>
</member>
<member name="M:Examine.Providers.BaseSearchProvider.CreateSearchCriteria(System.String)">
<summary>
Creates an instance of SearchCriteria for the provider
</summary>
<param name="maxResults">The max number of results.</param>
<param name="type">The type of data in the index.</param>
<returns>A blank SearchCriteria</returns>
</member>
<member name="M:Examine.Providers.BaseSearchProvider.CreateSearchCriteria(System.String,Examine.SearchCriteria.BooleanOperation)">
<summary>
Creates an instance of SearchCriteria for the provider
</summary>
<param name="maxResults">The max number of results.</param>
<param name="type">The type of data in the index.</param>
<param name="defaultOperation">The default operation.</param>
<returns>A blank SearchCriteria</returns>
</member>
<member name="T:Examine.Config.ExamineSettings">
<summary>
Config section for Examine
</summary>
</member>
<member name="P:Examine.Config.ExamineSettings.Instance">
<summary>
Gets the instance of the Examine settings.
</summary>
<value>The instance.</value>
</member>
<member name="P:Examine.Config.ExamineSettings.SearchProviders">
<summary>
Gets the search providers.
</summary>
<value>The search providers.</value>
</member>
<member name="P:Examine.Config.ExamineSettings.IndexProviders">
<summary>
Gets the index providers.
</summary>
<value>The index providers.</value>
</member>
<member name="T:Examine.Providers.BaseIndexProvider">
<summary>
Base class for an Examine Index Provider. You must implement this class to create an IndexProvider
</summary>
</member>
<member name="M:Examine.Providers.BaseIndexProvider.#ctor">
<summary>
Initializes a new instance of the <see cref="T:Examine.Providers.BaseIndexProvider"/> class.
</summary>
</member>
<member name="M:Examine.Providers.BaseIndexProvider.#ctor(Examine.IIndexCriteria)">
<summary>
Initializes a new instance of the <see cref="T:Examine.Providers.BaseIndexProvider"/> class.
</summary>
<param name="indexerData">The indexer data.</param>
</member>
<member name="M:Examine.Providers.BaseIndexProvider.Initialize(System.String,System.Collections.Specialized.NameValueCollection)">
<summary>
Initializes the provider.
</summary>
<param name="name">The friendly name of the provider.</param>
<param name="config">A collection of the name/value pairs representing the provider-specific attributes specified in the configuration for this provider.</param>
<exception cref="T:System.ArgumentNullException">
The name of the provider is null.
</exception>
<exception cref="T:System.ArgumentException">
The name of the provider has a length of zero.
</exception>
<exception cref="T:System.InvalidOperationException">
An attempt is made to call <see cref="M:System.Configuration.Provider.ProviderBase.Initialize(System.String,System.Collections.Specialized.NameValueCollection)"/> on a provider after the provider has already been initialized.
</exception>
</member>
<member name="M:Examine.Providers.BaseIndexProvider.ReIndexNode(System.Xml.Linq.XElement,System.String)">
<summary>
Forces a particular XML node to be reindexed
</summary>
<param name="node">XML node to reindex</param>
<param name="type">Type of index to use</param>
</member>
<member name="M:Examine.Providers.BaseIndexProvider.DeleteFromIndex(System.String)">
<summary>
Deletes a node from the index
</summary>
<param name="node">Node to delete</param>
</member>
<member name="M:Examine.Providers.BaseIndexProvider.IndexAll(System.String)">
<summary>
Re-indexes all data for the index type specified
</summary>
<param name="type"></param>
</member>
<member name="M:Examine.Providers.BaseIndexProvider.RebuildIndex">
<summary>
Rebuilds the entire index from scratch for all index types
</summary>
</member>
<member name="M:Examine.Providers.BaseIndexProvider.OnIgnoringNode(Examine.IndexingNodeDataEventArgs)">
<summary>
Called when a node is ignored by the ValidateDocument method.
</summary>
<param name="e"></param>
</member>
<member name="M:Examine.Providers.BaseIndexProvider.OnIndexingError(Examine.IndexingErrorEventArgs)">
<summary>
Raises the <see cref="E:IndexingError"/> event.
</summary>
<param name="e">The <see cref="T:Examine.IndexingErrorEventArgs"/> instance containing the event data.</param>
</member>
<member name="M:Examine.Providers.BaseIndexProvider.OnNodeIndexed(Examine.IndexedNodeEventArgs)">
<summary>
Raises the <see cref="E:NodeIndexed"/> event.
</summary>
<param name="e">The <see cref="T:Examine.IndexedNodeEventArgs"/> instance containing the event data.</param>
</member>
<member name="M:Examine.Providers.BaseIndexProvider.OnNodeIndexing(Examine.IndexingNodeEventArgs)">
<summary>
Raises the <see cref="E:NodeIndexing"/> event.
</summary>
<param name="e">The <see cref="T:Examine.IndexingNodeEventArgs"/> instance containing the event data.</param>
</member>
<member name="M:Examine.Providers.BaseIndexProvider.OnIndexDeleted(Examine.DeleteIndexEventArgs)">
<summary>
Raises the <see cref="E:IndexDeleted"/> event.
</summary>
<param name="e">The <see cref="T:Examine.DeleteIndexEventArgs"/> instance containing the event data.</param>
</member>
<member name="M:Examine.Providers.BaseIndexProvider.OnGatheringNodeData(Examine.IndexingNodeDataEventArgs)">
<summary>
Raises the <see cref="E:GatheringNodeData"/> event.
</summary>
<param name="e">The <see cref="T:Examine.IndexingNodeDataEventArgs"/> instance containing the event data.</param>
</member>
<member name="M:Examine.Providers.BaseIndexProvider.OnGatheringFieldData(Examine.IndexingFieldDataEventArgs)">
<summary>
Raises the <see cref="E:GatheringFieldData"/> event.
</summary>
<param name="e">The <see cref="T:Examine.IndexingFieldDataEventArgs"/> instance containing the event data.</param>
</member>
<member name="M:Examine.Providers.BaseIndexProvider.OnNodesIndexed(Examine.IndexedNodesEventArgs)">
<summary>
Raises the <see cref="E:NodesIndexed"/> event.
</summary>
<param name="e">The <see cref="T:Examine.IndexedNodesEventArgs"/> instance containing the event data.</param>
</member>
<member name="M:Examine.Providers.BaseIndexProvider.OnNodesIndexing(Examine.IndexingNodesEventArgs)">
<summary>
Raises the <see cref="E:NodesIndexing"/> event.
</summary>
<param name="e">The <see cref="T:Examine.IndexingNodesEventArgs"/> instance containing the event data.</param>
</member>
<member name="P:Examine.Providers.BaseIndexProvider.EnableDefaultEventHandler">
<summary>
If true, the IndexingActionHandler will be run to keep the default index up to date.
</summary>
</member>
<member name="P:Examine.Providers.BaseIndexProvider.SupportUnpublishedContent">
<summary>
Determines if the manager will call the indexing methods when content is saved or deleted as
opposed to cache being updated.
</summary>
</member>
<member name="P:Examine.Providers.BaseIndexProvider.IndexerData">
<summary>
Gets/sets the index criteria to create the index with
</summary>
</member>
<member name="E:Examine.Providers.BaseIndexProvider.IndexingError">
<summary>
Occurs for an Indexing Error
</summary>
</member>
<member name="E:Examine.Providers.BaseIndexProvider.NodeIndexing">
<summary>
Occurs when a node is in its Indexing phase
</summary>
</member>
<member name="E:Examine.Providers.BaseIndexProvider.NodeIndexed">
<summary>
Occurs when a node is in its Indexed phase
</summary>
</member>
<member name="E:Examine.Providers.BaseIndexProvider.NodesIndexing">
<summary>
Occurs when a collection of nodes are in their Indexing phase (before a single node is processed)
</summary>
</member>
<member name="E:Examine.Providers.BaseIndexProvider.NodesIndexed">
<summary>
Occurs when the collection of nodes have been indexed
</summary>
</member>
<member name="E:Examine.Providers.BaseIndexProvider.GatheringNodeData">
<summary>
Occurs when the indexer is gathering the fields and their associated data for the index
</summary>
</member>
<member name="E:Examine.Providers.BaseIndexProvider.IndexDeleted">
<summary>
Occurs when a node is deleted from the index
</summary>
</member>
<member name="E:Examine.Providers.BaseIndexProvider.GatheringFieldData">
<summary>
Occurs when a particular field is having its data obtained
</summary>
</member>
<member name="E:Examine.Providers.BaseIndexProvider.IgnoringNode">
<summary>
Occurs when node is found but outside the supported node set
</summary>
</member>
<member name="T:Examine.Config.IndexProvidersSection">
<summary>
Config section for the Examine Index Providers
</summary>
</member>
<member name="P:Examine.Config.IndexProvidersSection.Providers">
<summary>
Gets the indexing providers.
</summary>
<value>The providers.</value>
</member>
<member name="T:Examine.Config.SearchProvidersSection">
<summary>
Config section for the Examine search providers
</summary>
</member>
<member name="P:Examine.Config.SearchProvidersSection.Providers">
<summary>
Gets the search providers.
</summary>
<value>The providers.</value>
</member>
<member name="P:Examine.Config.SearchProvidersSection.DefaultProvider">
<summary>
Gets or sets the default provider.
</summary>
<value>The default provider.</value>
</member>
<member name="T:Examine.SearchCriteria.IBooleanOperation">
<summary>
Defines the supported operation for addition of additional clauses in the fluent API
</summary>
</member>
<member name="M:Examine.SearchCriteria.IBooleanOperation.And">
<summary>
Sets the next operation to be AND
</summary>
<returns></returns>
</member>
<member name="M:Examine.SearchCriteria.IBooleanOperation.Or">
<summary>
Sets the next operation to be OR
</summary>
<returns></returns>
</member>
<member name="M:Examine.SearchCriteria.IBooleanOperation.Not">
<summary>
Sets the next operation to be NOT
</summary>
<returns></returns>
</member>
<member name="M:Examine.SearchCriteria.IBooleanOperation.Compile">
<summary>
Compiles this instance for fluent API conclusion
</summary>
<returns></returns>
</member>
<member name="T:Examine.IndexCriteria">
<summary>
a data structure for storing indexing/searching instructions
</summary>
</member>
<member name="T:Examine.SearchCriteria.ISearchCriteria">
<summary>
</summary>
</member>
<member name="T:Examine.SearchCriteria.IQuery">
<summary>
Defines the query methods for the fluent search API
</summary>
</member>
<member name="M:Examine.SearchCriteria.IQuery.Id(System.Int32)">
<summary>
Query on the id
</summary>
<param name="id">The id.</param>
<returns></returns>
</member>
<member name="M:Examine.SearchCriteria.IQuery.NodeName(System.String)">
<summary>
Query on the NodeName
</summary>
<param name="nodeName">Name of the node.</param>
<returns></returns>
</member>
<member name="M:Examine.SearchCriteria.IQuery.NodeName(Examine.SearchCriteria.IExamineValue)">
<summary>
Query on the NodeName
</summary>
<param name="nodeName">Name of the node.</param>
<returns></returns>
</member>
<member name="M:Examine.SearchCriteria.IQuery.NodeTypeAlias(System.String)">
<summary>
Query on the NodeTypeAlias
</summary>
<param name="nodeTypeAlias">The node type alias.</param>
<returns></returns>
</member>
<member name="M:Examine.SearchCriteria.IQuery.NodeTypeAlias(Examine.SearchCriteria.IExamineValue)">
<summary>
Query on the NodeTypeAlias
</summary>
<param name="nodeTypeAlias">The node type alias.</param>
<returns></returns>
</member>
<member name="M:Examine.SearchCriteria.IQuery.ParentId(System.Int32)">
<summary>
Query on the Parent ID
</summary>
<param name="id">The id of the parent.</param>
<returns></returns>
</member>
<member name="M:Examine.SearchCriteria.IQuery.Field(System.String,System.String)">
<summary>
Query on the specified field
</summary>
<param name="fieldName">Name of the field.</param>
<param name="fieldValue">The field value.</param>
<returns></returns>
</member>
<member name="M:Examine.SearchCriteria.IQuery.Field(System.String,Examine.SearchCriteria.IExamineValue)">
<summary>
Query on the specified field
</summary>
<param name="fieldName">Name of the field.</param>
<param name="fieldValue">The field value.</param>
<returns></returns>
</member>
<member name="M:Examine.SearchCriteria.IQuery.Range(System.String,System.DateTime,System.DateTime)">
<summary>
Query on a specified field using a date range. Includes upper and lower bounds
</summary>
<param name="fieldName">Name of the field.</param>
<param name="lower">The lower.</param>
<param name="upper">The upper.</param>
<returns></returns>
</member>
<member name="M:Examine.SearchCriteria.IQuery.Range(System.String,System.DateTime,System.DateTime,System.Boolean,System.Boolean)">
<summary>
Query on a specified field using a date range
</summary>
<param name="fieldName">Name of the field.</param>
<param name="lower">The lower.</param>
<param name="upper">The upper.</param>
<param name="includeLower">if set to <c>true</c> the lower.</param>
<param name="includeUpper">if set to <c>true</c> the upper.</param>
<returns></returns>
</member>
<member name="M:Examine.SearchCriteria.IQuery.Range(System.String,System.Int32,System.Int32)">
<summary>
Query on a specified field using an int range
</summary>
<param name="fieldName">Name of the field.</param>
<param name="lower">The lower.</param>
<param name="upper">The upper.</param>
<returns></returns>
</member>
<member name="M:Examine.SearchCriteria.IQuery.Range(System.String,System.Int32,System.Int32,System.Boolean,System.Boolean)">
<summary>
Query on a specified field using an int range. Includes upper and lower bounds
</summary>
<param name="fieldName">Name of the field.</param>
<param name="lower">The lower.</param>
<param name="upper">The upper.</param>
<param name="includeLower">if set to <c>true</c> [include lower].</param>
<param name="includeUpper">if set to <c>true</c> [include upper].</param>
<returns></returns>
</member>
<member name="M:Examine.SearchCriteria.IQuery.Range(System.String,System.String,System.String)">
<summary>
Query on a specified field using a string range. Includes upper and lower bounds
</summary>
<param name="fieldName">Name of the field.</param>
<param name="lower">The lower.</param>
<param name="upper">The upper.</param>
<returns></returns>
</member>
<member name="M:Examine.SearchCriteria.IQuery.Range(System.String,System.String,System.String,System.Boolean,System.Boolean)">
<summary>
Query on a specified field using a string range
</summary>
<param name="fieldName">Name of the field.</param>
<param name="lower">The lower.</param>
<param name="upper">The upper.</param>
<param name="includeLower">if set to <c>true</c> [include lower].</param>
<param name="includeUpper">if set to <c>true</c> [include upper].</param>
<returns></returns>
</member>
<member name="M:Examine.SearchCriteria.IQuery.GroupedAnd(System.Collections.Generic.IEnumerable{System.String},System.String[])">
<summary>
Queries multiple fields with each being an And boolean operation
</summary>
<param name="fields">The fields.</param>
<param name="query">The query.</param>
<returns></returns>
</member>
<member name="M:Examine.SearchCriteria.IQuery.GroupedAnd(System.Collections.Generic.IEnumerable{System.String},Examine.SearchCriteria.IExamineValue[])">
<summary>
Queries multiple fields with each being an And boolean operation
</summary>
<param name="fields">The fields.</param>
<param name="query">The query.</param>
<returns></returns>
</member>
<member name="M:Examine.SearchCriteria.IQuery.GroupedOr(System.Collections.Generic.IEnumerable{System.String},System.String[])">
<summary>
Queries multiple fields with each being an Or boolean operation
</summary>
<param name="fields">The fields.</param>
<param name="query">The query.</param>
<returns></returns>
</member>
<member name="M:Examine.SearchCriteria.IQuery.GroupedOr(System.Collections.Generic.IEnumerable{System.String},Examine.SearchCriteria.IExamineValue[])">
<summary>
Queries multiple fields with each being an Or boolean operation
</summary>
<param name="fields">The fields.</param>
<param name="query">The query.</param>
<returns></returns>
</member>
<member name="M:Examine.SearchCriteria.IQuery.GroupedNot(System.Collections.Generic.IEnumerable{System.String},System.String[])">
<summary>
Queries multiple fields with each being an Not boolean operation
</summary>
<param name="fields">The fields.</param>
<param name="query">The query.</param>
<returns></returns>
</member>
<member name="M:Examine.SearchCriteria.IQuery.GroupedNot(System.Collections.Generic.IEnumerable{System.String},Examine.SearchCriteria.IExamineValue[])">
<summary>
Queries multiple fields with each being an Not boolean operation
</summary>
<param name="fields">The fields.</param>
<param name="query">The query.</param>
<returns></returns>
</member>
<member name="M:Examine.SearchCriteria.IQuery.GroupedFlexible(System.Collections.Generic.IEnumerable{System.String},System.Collections.Generic.IEnumerable{Examine.SearchCriteria.BooleanOperation},System.String[])">
<summary>
Queries on multiple fields with their inclusions customly defined
</summary>
<param name="fields">The fields.</param>
<param name="query">The query.</param>
<param name="operations">The operations.</param>
<returns></returns>
</member>
<member name="M:Examine.SearchCriteria.IQuery.GroupedFlexible(System.Collections.Generic.IEnumerable{System.String},System.Collections.Generic.IEnumerable{Examine.SearchCriteria.BooleanOperation},Examine.SearchCriteria.IExamineValue[])">
<summary>
Queries on multiple fields with their inclusions customly defined
</summary>
<param name="fields">The fields.</param>
<param name="query">The query.</param>
<param name="operations">The operations.</param>
<returns></returns>
</member>
<member name="M:Examine.SearchCriteria.IQuery.OrderBy(System.String[])">
<summary>
Orders the results by the specified fields
</summary>
<param name="fieldNames">The field names.</param>
<returns></returns>
</member>
<member name="M:Examine.SearchCriteria.IQuery.OrderByDescending(System.String[])">
<summary>
Orders the results by the specified fields in a descending order
</summary>
<param name="fieldNames">The field names.</param>
<returns></returns>
</member>
<member name="P:Examine.SearchCriteria.IQuery.BooleanOperation">
<summary>
Gets the boolean operation which this query method will be added as
</summary>
<value>The boolean operation.</value>
</member>
<member name="M:Examine.SearchCriteria.ISearchCriteria.RawQuery(System.String)">
<summary>
Passes a text string which is preformatted for the underlying search API. Examine will not modify this
</summary>
<remarks>
This allows a developer to completely bypass and Examine logic and comprise their own query text which they are passing in.
It means that if the search is too complex to achieve with the fluent API, or too dynamic to achieve with a static language
the provider can still handle it.
</remarks>
<param name="query">The query.</param>
<returns></returns>
</member>
<member name="P:Examine.SearchCriteria.ISearchCriteria.SearchIndexType">
<summary>
Indicates the type of data to search on
</summary>
</member>
</members>
</doc>

File diff suppressed because it is too large Load Diff

Binary file not shown.

View File

@@ -234,8 +234,8 @@ namespace umbraco.BasePages {
private void deleteLogin()
{
SqlHelper.ExecuteNonQuery(
"DELETE umbracoUserLogins WHERE contextId = @contextId",
SqlHelper.CreateParameter("@contextId", umbracoUserContextID));
"DELETE FROM umbracoUserLogins WHERE contextId = @contextId",
SqlHelper.CreateParameter("@contextId", umbracoUserContextID));
}
private void updateLogin()

View File

@@ -590,7 +590,7 @@ namespace umbraco
/// <value>The allowed image file types.</value>
public static string ImageFileTypes
{
get { return GetKey("/settings/content/imaging/imageFileTypes"); }
get { return GetKey("/settings/content/imaging/imageFileTypes").ToLowerInvariant(); }
}
/// <summary>

View File

@@ -0,0 +1,19 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace umbraco.cms.businesslogic.Files
{
public interface IFile
{
string Filename { get; }
string Extension { get; }
string LocalName { get; }
bool SupportsResizing { get; }
string GetFriendlyName();
System.Tuple<int, int> GetDimensions();
string Resize(int width, int height);
string Resize(int maxWidthHeight, string fileNameAddition);
}
}

View File

@@ -0,0 +1,21 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace umbraco.cms.businesslogic.Files
{
public class NotAnImageException : Exception
{
public NotAnImageException()
: base()
{
}
public NotAnImageException(string message) : base(message)
{
}
}
}

View File

@@ -0,0 +1,241 @@
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Drawing.Imaging;
using System.IO;
using System.Linq;
using System.Web;
using Encoder = System.Text.Encoder;
namespace umbraco.cms.businesslogic.Files
{
public class UmbracoFile : IFile
{
private string _fullFilePath;
private string _fileName;
private string _directoryName;
private string _extension;
private string _localName;
private long _length;
public UmbracoFile()
{
}
public UmbracoFile(string fullFilePath)
{
_fullFilePath = fullFilePath;
initialize();
}
public static UmbracoFile Save(HttpPostedFile file, string fullFileName)
{
string fullFilePath = IO.IOHelper.MapPath(fullFileName);
// create directories
DirectoryInfo di = new DirectoryInfo(IO.IOHelper.MapPath(fullFilePath.Substring(0, fullFilePath.LastIndexOf(Path.DirectorySeparatorChar))));
if (!di.Exists)
{
var currentDir = IO.IOHelper.MapPath(IO.SystemDirectories.Root);
var rootDir = IO.IOHelper.MapPath(IO.SystemDirectories.Root);
foreach (var dir in di.FullName.Substring(rootDir.Length).Split(Path.DirectorySeparatorChar))
{
currentDir = Path.Combine(currentDir, dir);
if (!new DirectoryInfo(currentDir).Exists)
{
Directory.CreateDirectory(currentDir);
}
}
}
file.SaveAs(fullFilePath);
return new UmbracoFile(fullFilePath);
}
public static UmbracoFile Save(HttpPostedFile file)
{
string tempDir = Path.Combine(IO.SystemDirectories.Media, "uploads", Guid.NewGuid().ToString());
return Save(file, tempDir);
}
private void initialize()
{
var fi = new FileInfo(_fullFilePath);
_fileName = fi.Name;
_length = fi.Length;
_directoryName = fi.DirectoryName;
_extension = fi.Extension.Substring(1);
_localName =
"/" + fi.FullName.Substring(IO.IOHelper.MapPath(IO.SystemDirectories.Root).Length).Replace(
Path.DirectorySeparatorChar.ToString(), "/");
}
#region IFile Members
public string Filename
{
get { return _fileName; }
}
public string Extension
{
get { return _extension; }
}
public string LocalName
{
get { return _localName; }
}
public long Length
{
get { return _length; }
}
public bool SupportsResizing
{
get
{
if (("," + UmbracoSettings.ImageFileTypes + ",").Contains(string.Format(",{0},", _extension)))
{
return true;
}
return false;
}
}
public string GetFriendlyName()
{
return helpers.Casing.SpaceCamelCasing(_fileName);
}
public System.Tuple<int, int> GetDimensions()
{
throwNotAnImageException();
FileStream fs = new FileStream(_fullFilePath,
FileMode.Open, FileAccess.Read, FileShare.Read);
Image image = Image.FromStream(fs);
var fileWidth = image.Width;
var fileHeight = image.Height;
fs.Close();
image.Dispose();
return new System.Tuple<int, int>(fileWidth, fileHeight);
}
public string Resize(int width, int height)
{
throwNotAnImageException();
string fileNameThumb = DoResize(width, height, 0, String.Empty);
return fileNameThumb.Substring(IO.IOHelper.MapPath(IO.SystemDirectories.Root).Length);
}
public string Resize(int maxWidthHeight, string fileNameAddition)
{
throwNotAnImageException();
string fileNameThumb = DoResize(GetDimensions().Item1, GetDimensions().Item2, maxWidthHeight, fileNameAddition);
return fileNameThumb.Substring(IO.IOHelper.MapPath(IO.SystemDirectories.Root).Length);
}
private string DoResize(int width, int height, int maxWidthHeight, string fileNameAddition)
{
FileStream fs = new FileStream(_fullFilePath,
FileMode.Open, FileAccess.Read, FileShare.Read);
Image image = Image.FromStream(fs);
fs.Close();
string fileNameThumb = String.IsNullOrEmpty(fileNameAddition) ?
string.Format("{0}_UMBRACOSYSTHUMBNAIL.{1}", _fullFilePath.Substring(0, _fullFilePath.LastIndexOf(".")), _extension) :
string.Format("{0}_{1}.{2}", _fullFilePath.Substring(0, _fullFilePath.LastIndexOf(".")), fileNameAddition, _extension);
generateThumbnail(
image,
maxWidthHeight,
width,
height,
_fullFilePath,
_extension,
fileNameThumb,
maxWidthHeight == 0
);
image.Dispose();
return fileNameThumb;
}
#endregion
private void throwNotAnImageException()
{
if (!SupportsResizing)
throw new NotAnImageException(string.Format("The file {0} is not an image, so can't get dimensions", _fileName));
}
private System.Tuple<int, int> generateThumbnail(System.Drawing.Image image, int maxWidthHeight, int fileWidth, int fileHeight, string fullFilePath, string ext, string thumbnailFileName, bool useFixedDimensions)
{
// Generate thumbnail
float f = 1;
if (!useFixedDimensions)
{
var fx = (float)image.Size.Width / (float)maxWidthHeight;
var fy = (float)image.Size.Height / (float)maxWidthHeight;
// must fit in thumbnail size
f = Math.Max(fx, fy); //if (f < 1) f = 1;
}
var widthTh = (int)Math.Round((float)fileWidth / f); int heightTh = (int)Math.Round((float)fileHeight / f);
// fixes for empty width or height
if (widthTh == 0)
widthTh = 1;
if (heightTh == 0)
heightTh = 1;
// Create new image with best quality settings
var bp = new Bitmap(widthTh, heightTh);
var g = Graphics.FromImage(bp);
g.SmoothingMode = SmoothingMode.HighQuality;
g.InterpolationMode = InterpolationMode.HighQualityBicubic;
g.PixelOffsetMode = PixelOffsetMode.HighQuality;
g.CompositingQuality = CompositingQuality.HighQuality;
// Copy the old image to the new and resized
var rect = new Rectangle(0, 0, widthTh, heightTh);
g.DrawImage(image, rect, 0, 0, image.Width, image.Height, GraphicsUnit.Pixel);
// Copy metadata
ImageCodecInfo[] codecs = ImageCodecInfo.GetImageEncoders();
ImageCodecInfo codec = null;
for (int i = 0; i < codecs.Length; i++)
{
if (codecs[i].MimeType.Equals("image/jpeg"))
codec = codecs[i];
}
// Set compresion ratio to 90%
var ep = new EncoderParameters();
ep.Param[0] = new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, 90L);
// Save the new image using the dimensions of the image
bp.Save(thumbnailFileName.Replace("UMBRACOSYSTHUMBNAIL", string.Format("{0}x{1}", widthTh, heightTh)), codec, ep);
bp.Dispose();
g.Dispose();
return new System.Tuple<int, int>(widthTh, heightTh);
}
}
}

View File

@@ -0,0 +1,74 @@
using System;
using System.IO;
using System.Web;
using umbraco.cms.businesslogic.Files;
using umbraco.IO;
namespace umbraco.cms.businesslogic.datatype
{
public class FileHandlerData : DefaultData
{
private readonly string _thumbnailSizes;
public FileHandlerData(BaseDataType DataType, string thumbnailSizes)
: base(DataType)
{
_thumbnailSizes = thumbnailSizes;
}
public override object Value
{
get { return base.Value; }
set
{
UmbracoFile um = null;
if (value is HttpPostedFile)
{
// handle upload
var file = value as HttpPostedFile;
if (file.FileName != String.Empty)
{
var fileName = UmbracoSettings.UploadAllowDirectories ?
Path.Combine(PropertyId.ToString(), file.FileName) :
PropertyId + "-" + file.FileName;
fileName = Path.Combine(SystemDirectories.Media, fileName);
um = UmbracoFile.Save(file, fileName);
if (um.SupportsResizing)
{
// make default thumbnail
um.Resize(100, "thumb");
// additional thumbnails configured as prevalues on the DataType
if (_thumbnailSizes != "")
{
char sep = (!_thumbnailSizes.Contains("") && _thumbnailSizes.Contains(",")) ? ',' : ';';
foreach (string thumb in _thumbnailSizes.Split(sep))
{
int thumbSize;
if (thumb != "" && int.TryParse(thumb, out thumbSize))
{
um.Resize(thumbSize, string.Format("thumb_{0}", thumbSize));
}
}
}
}
base.Value = um.LocalName;
}
else
{
// if no file is uploaded, we reset the value
base.Value = String.Empty;
}
}
else
{
base.Value = value;
}
}
}
}
}

View File

@@ -59,5 +59,34 @@ namespace umbraco.cms.helpers
return alias;
}
}
public static string SpaceCamelCasing(string text)
{
string s = text;
if (2 > s.Length)
{
return s;
}
var sb = new System.Text.StringBuilder();
var ca = s.ToCharArray();
ca[0] = char.ToUpper(ca[0]);
sb.Append(ca[0]);
for (int i = 1; i < ca.Length - 1; i++)
{
char c = ca[i];
if (char.IsUpper(c) && (char.IsLower(ca[i + 1]) || char.IsLower(ca[i - 1])))
{
sb.Append(' ');
}
sb.Append(c);
}
sb.Append(ca[ca.Length - 1]);
return sb.ToString();
}
}
}

View File

@@ -208,8 +208,12 @@
<Compile Include="businesslogic\datatype\DataEditorSettingType.cs" />
<Compile Include="businesslogic\datatype\DataEditorSettingValidationResult.cs" />
<Compile Include="businesslogic\datatype\DBTypes.cs" />
<Compile Include="businesslogic\datatype\FileHandlerData.cs" />
<Compile Include="businesslogic\datatype\IDataEditorSettingType.cs" />
<Compile Include="businesslogic\datatype\PreValue.cs" />
<Compile Include="businesslogic\Files\IFile.cs" />
<Compile Include="businesslogic\Files\NotAnImageException.cs" />
<Compile Include="businesslogic\Files\UmbracoFile.cs" />
<Compile Include="businesslogic\installer\IInstallerStep.cs" />
<Compile Include="businesslogic\installer\InstallerStep.cs" />
<Compile Include="businesslogic\installer\InstallStepCollection.cs">

View File

@@ -126,14 +126,14 @@ ALTER TABLE cmsContentType ADD CONSTRAINT
IX_cmsContentType UNIQUE NONCLUSTERED
(
nodeId
) WITH( STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) WITH( STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
;
ALTER TABLE cmsContent ADD CONSTRAINT
IX_cmsContent UNIQUE NONCLUSTERED
(
nodeId
) WITH( STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) WITH( STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
;
ALTER TABLE cmsContentVersion ADD CONSTRAINT
@@ -151,7 +151,7 @@ ALTER TABLE cmsMember ADD CONSTRAINT
PK_cmsMember PRIMARY KEY CLUSTERED
(
nodeId
) WITH( STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) WITH( STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
;
ALTER TABLE cmsMember ADD CONSTRAINT
@@ -180,14 +180,14 @@ ALTER TABLE cmsStylesheet ADD CONSTRAINT
PK_cmsStylesheet PRIMARY KEY CLUSTERED
(
nodeId
) WITH( STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) WITH( STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
;
ALTER TABLE cmsStylesheetProperty ADD CONSTRAINT
PK_cmsStylesheetProperty PRIMARY KEY CLUSTERED
(
nodeId
) WITH( STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) WITH( STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
;
ALTER TABLE cmsStylesheetProperty ADD CONSTRAINT
@@ -227,7 +227,7 @@ ALTER TABLE cmsDataType ADD CONSTRAINT
IX_cmsDataType UNIQUE NONCLUSTERED
(
nodeId
) WITH( STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) WITH( STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
;
@@ -338,7 +338,7 @@ ALTER TABLE cmsDocument ADD CONSTRAINT
(
nodeId,
versionId
) WITH( STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) WITH( STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
;
ALTER TABLE cmsPropertyData ADD CONSTRAINT
@@ -389,7 +389,7 @@ ALTER TABLE cmsTemplate ADD CONSTRAINT
IX_cmsTemplate UNIQUE NONCLUSTERED
(
nodeId
) WITH( STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) WITH( STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
;
ALTER TABLE cmsDocument ADD CONSTRAINT
@@ -419,7 +419,7 @@ ALTER TABLE cmsDictionary ADD CONSTRAINT
IX_cmsDictionary UNIQUE NONCLUSTERED
(
id
) WITH( STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) WITH( STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
;
ALTER TABLE cmsLanguageText ADD CONSTRAINT
@@ -515,7 +515,7 @@ ALTER TABLE cmsTask ADD CONSTRAINT
CREATE NONCLUSTERED INDEX IX_umbracoLog ON umbracoLog
(
NodeId
) WITH( STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) WITH( STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
;
ALTER TABLE umbracoRelation ADD CONSTRAINT
@@ -579,21 +579,21 @@ ALTER TABLE umbracoLanguage ADD CONSTRAINT
IX_umbracoLanguage UNIQUE NONCLUSTERED
(
languageISOCode
) WITH( STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) WITH( STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
;
ALTER TABLE umbracoUser ADD CONSTRAINT
IX_umbracoUser UNIQUE NONCLUSTERED
(
userLogin
) WITH( STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) WITH( STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
;
ALTER TABLE cmsTaskType ADD CONSTRAINT
IX_cmsTaskType UNIQUE NONCLUSTERED
(
alias
) WITH( STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) WITH( STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
;
ALTER TABLE cmsDocumentType ADD CONSTRAINT
@@ -622,7 +622,7 @@ ALTER TABLE cmsContentVersion ADD CONSTRAINT
IX_cmsContentVersion UNIQUE NONCLUSTERED
(
VersionId
) WITH( STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) WITH( STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
;
ALTER TABLE cmsPreviewXml ADD CONSTRAINT

View File

@@ -548,7 +548,8 @@ CREATE TABLE [umbracoUserLogins]
[userID] [int] NOT NULL,
[timeout] [bigint] NOT NULL
)
;
CREATE CLUSTERED INDEX umbracoUserLogins_Index ON umbracoUserLogins (contextID)
;
ALTER TABLE [umbracoAppTree] ADD
CONSTRAINT [FK_umbracoAppTree_umbracoApp] FOREIGN KEY ([appAlias]) REFERENCES [umbracoApp] ([appAlias])
@@ -1005,8 +1006,8 @@ CREATE TABLE [cmsPreviewXml](
(
[nodeId] ASC,
[versionId] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
) WITH ( STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF)
)
;
@@ -1125,8 +1126,8 @@ DELETE FROM cmsPreviewXml WHERE VersionID NOT IN (SELECT VersionId FROM cmsConte
;
/* Though this should not have to run because it's a new install, you need to remove this constraint if you've been testing with the RC */
IF EXISTS (SELECT name FROM sysindexes WHERE name = 'IX_cmsMemberType')
ALTER TABLE [cmsMemberType] DROP CONSTRAINT [IX_cmsMemberType]
/*IF EXISTS (SELECT name FROM sysindexes WHERE name = 'IX_cmsMemberType')*/
/*ALTER TABLE [cmsMemberType] DROP CONSTRAINT [IX_cmsMemberType]*/
/************************** CLEANUP END ********************************************/
@@ -1139,14 +1140,14 @@ ALTER TABLE cmsContentType ADD CONSTRAINT
IX_cmsContentType UNIQUE NONCLUSTERED
(
nodeId
) WITH( STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) WITH( STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
;
ALTER TABLE cmsContent ADD CONSTRAINT
IX_cmsContent UNIQUE NONCLUSTERED
(
nodeId
) WITH( STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) WITH( STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
;
ALTER TABLE cmsContentVersion ADD CONSTRAINT
@@ -1164,7 +1165,7 @@ ALTER TABLE cmsMember ADD CONSTRAINT
PK_cmsMember PRIMARY KEY CLUSTERED
(
nodeId
) WITH( STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) WITH( STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
;
ALTER TABLE cmsMember ADD CONSTRAINT
@@ -1193,14 +1194,14 @@ ALTER TABLE cmsStylesheet ADD CONSTRAINT
PK_cmsStylesheet PRIMARY KEY CLUSTERED
(
nodeId
) WITH( STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) WITH( STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
;
ALTER TABLE cmsStylesheetProperty ADD CONSTRAINT
PK_cmsStylesheetProperty PRIMARY KEY CLUSTERED
(
nodeId
) WITH( STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) WITH( STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
;
ALTER TABLE cmsStylesheetProperty ADD CONSTRAINT
@@ -1240,7 +1241,7 @@ ALTER TABLE cmsDataType ADD CONSTRAINT
IX_cmsDataType UNIQUE NONCLUSTERED
(
nodeId
) WITH( STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) WITH( STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
;
@@ -1351,7 +1352,7 @@ ALTER TABLE cmsDocument ADD CONSTRAINT
(
nodeId,
versionId
) WITH( STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) WITH( STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
;
ALTER TABLE cmsPropertyData ADD CONSTRAINT
@@ -1402,7 +1403,7 @@ ALTER TABLE cmsTemplate ADD CONSTRAINT
IX_cmsTemplate UNIQUE NONCLUSTERED
(
nodeId
) WITH( STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) WITH( STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
;
ALTER TABLE cmsDocument ADD CONSTRAINT
@@ -1432,7 +1433,7 @@ ALTER TABLE cmsDictionary ADD CONSTRAINT
IX_cmsDictionary UNIQUE NONCLUSTERED
(
id
) WITH( STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) WITH( STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
;
ALTER TABLE cmsLanguageText ADD CONSTRAINT
@@ -1528,7 +1529,7 @@ ALTER TABLE cmsTask ADD CONSTRAINT
CREATE NONCLUSTERED INDEX IX_umbracoLog ON umbracoLog
(
NodeId
) WITH( STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) WITH( STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
;
ALTER TABLE umbracoRelation ADD CONSTRAINT
@@ -1592,21 +1593,21 @@ ALTER TABLE umbracoLanguage ADD CONSTRAINT
IX_umbracoLanguage UNIQUE NONCLUSTERED
(
languageISOCode
) WITH( STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) WITH( STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
;
ALTER TABLE umbracoUser ADD CONSTRAINT
IX_umbracoUser UNIQUE NONCLUSTERED
(
userLogin
) WITH( STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) WITH( STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
;
ALTER TABLE cmsTaskType ADD CONSTRAINT
IX_cmsTaskType UNIQUE NONCLUSTERED
(
alias
) WITH( STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) WITH( STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
;
ALTER TABLE cmsDocumentType ADD CONSTRAINT
@@ -1635,7 +1636,7 @@ ALTER TABLE cmsContentVersion ADD CONSTRAINT
IX_cmsContentVersion UNIQUE NONCLUSTERED
(
VersionId
) WITH( STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) WITH( STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
;
ALTER TABLE cmsPreviewXml ADD CONSTRAINT

View File

@@ -4,7 +4,7 @@
IMPORTANT IMPORTANT IMPORTANT IMPORTANT IMPORTANT IMPORTANT IMPORTANT IMPORTANT IMPORTANT
Database version: 4.1.0.3
Database version: 4.8.0.0
Please increment this version number if ANY change is made to this script,
so compatibility with scripts for other database systems can be verified easily.
@@ -46,8 +46,8 @@ CREATE TABLE [cmsPreviewXml](
(
[nodeId] ASC,
[versionId] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON)
)
/************************** CLEANUP ***********************************************/

View File

@@ -26,7 +26,7 @@ namespace umbraco.editorControls.uploadfield
get
{
if (_baseData == null)
_baseData = new cms.businesslogic.datatype.DefaultData(this);
_baseData = new cms.businesslogic.datatype.FileHandlerData(this, ((uploadFieldPreValue)PrevalueEditor).Configuration);
return _baseData;
}
}

View File

@@ -6,6 +6,7 @@ using System.IO;
using System.Drawing;
using System.Drawing.Imaging;
using System.Drawing.Drawing2D;
using umbraco.cms.businesslogic.Files;
using umbraco.IO;
using System.Text.RegularExpressions;
@@ -107,7 +108,8 @@ namespace umbraco.editorControls
bytesControl.RefreshLabel(string.Empty);
}
}
catch {
catch
{
//if first one fails we can assume that props don't exist
break;
}
@@ -116,69 +118,22 @@ namespace umbraco.editorControls
if (this.PostedFile != null)
{
if (this.PostedFile.FileName != "")
_data.Value = this.PostedFile;
// we update additional properties post image upload
if (_data.Value != DBNull.Value && !string.IsNullOrEmpty(_data.Value.ToString()))
{
//if (_text.Length > 0 && helper.Request(this.ClientID + "clear") != "1")
//{
// //delete old file
// deleteFile(_text);
//}
// Find filename (removed the safe url here as it removes fullpath characters (such as c:\ becomes c:) - the safe url should only be used when saving the
// local filename
_text = this.PostedFile.FileName;
string filename;
string _fullFilePath;
var fullFilePath = IO.IOHelper.MapPath(_data.Value.ToString());
UmbracoFile uf = new UmbracoFile(fullFilePath);
cms.businesslogic.Content content = cms.businesslogic.Content.GetContentFromVersion(this._data.Version);
if (umbraco.UmbracoSettings.UploadAllowDirectories)
{
// moved the safeUrl call to here as it's the local file name to be stored
filename = SafeUrl(_text.Substring(_text.LastIndexOf(IOHelper.DirSepChar) + 1, _text.Length - _text.LastIndexOf(IOHelper.DirSepChar) - 1).ToLower());
// Create a new folder in the /media folder with the name /media/propertyid
System.IO.Directory.CreateDirectory(IOHelper.MapPath(SystemDirectories.Media + "/" + _data.PropertyId.ToString()));
_fullFilePath = IOHelper.MapPath(SystemDirectories.Media + "/" + _data.PropertyId.ToString() + "/" + filename);
this.PostedFile.SaveAs(_fullFilePath);
//if we are not in a virtual dir, just save without the ~
string _relFilePath = SystemDirectories.Media + "/" + _data.PropertyId + "/" + filename;
if (SystemDirectories.Root == string.Empty)
_relFilePath = _relFilePath.TrimStart('~');
_data.Value = _relFilePath;
}
else
{
//filename = this.
filename = System.IO.Path.GetFileName(SafeUrl(this.PostedFile.FileName));
filename = _data.PropertyId + "-" + filename;
_fullFilePath = IOHelper.MapPath(SystemDirectories.Media + "/" + filename);
this.PostedFile.SaveAs(_fullFilePath);
//if we are not in a virtual dir, just save without the ~
string _relFilePath = SystemDirectories.Media + "/" + filename;
if (SystemDirectories.Root == string.Empty)
_relFilePath = _relFilePath.TrimStart('~');
_data.Value = _relFilePath;
}
// hack to find master page prefix client id
string masterpagePrefix = this.ClientID.Substring(0, this.ClientID.LastIndexOf("_") + 1);
// Save extension
string orgExt = ((string)_text.Substring(_text.LastIndexOf(".") + 1, _text.Length - _text.LastIndexOf(".") - 1));
orgExt = orgExt.ToLower();
string ext = orgExt.ToLower();
string orgExt = uf.Extension.ToLower();
try
{
//cms.businesslogic.Content.GetContentFromVersion(_data.Version).getProperty("umbracoExtension").Value = ext;
content.getProperty("umbracoExtension").Value = ext;
content.getProperty("umbracoExtension").Value = orgExt;
noEdit extensionControl = uploadField.FindControlRecursive<noEdit>(this.Page, "prop_umbracoExtension");
if (extensionControl != null)
{
@@ -192,9 +147,8 @@ namespace umbraco.editorControls
// Save file size
try
{
System.IO.FileInfo fi = new FileInfo(_fullFilePath);
//cms.businesslogic.Content.GetContentFromVersion(_data.Version).getProperty("umbracoBytes").Value = fi.Length.ToString();
content.getProperty("umbracoBytes").Value = fi.Length.ToString();
content.getProperty("umbracoBytes").Value = uf.Length.ToString();
noEdit bytesControl = uploadField.FindControlRecursive<noEdit>(this.Page, "prop_umbracoBytes");
if (bytesControl != null)
{
@@ -204,18 +158,13 @@ namespace umbraco.editorControls
catch { }
// Check if image and then get sizes, make thumb and update database
if (",jpeg,jpg,gif,bmp,png,tiff,tif,".IndexOf("," + ext + ",") > -1)
if (uf.SupportsResizing)
{
int fileWidth;
int fileHeight;
System.Tuple<int, int> dimensions = uf.GetDimensions();
int fileWidth = dimensions.Item1;
int fileHeight = dimensions.Item2;
FileStream fs = new FileStream(_fullFilePath,
FileMode.Open, FileAccess.Read, FileShare.Read);
System.Drawing.Image image = System.Drawing.Image.FromStream(fs);
fileWidth = image.Width;
fileHeight = image.Height;
fs.Close();
try
{
//cms.businesslogic.Content.GetContentFromVersion(_data.Version).getProperty("umbracoWidth").Value = fileWidth.ToString();
@@ -236,27 +185,6 @@ namespace umbraco.editorControls
catch { }
// Generate thumbnails
string fileNameThumb = _fullFilePath.Replace("." + orgExt, "_thumb");
generateThumbnail(image, 100, fileWidth, fileHeight, _fullFilePath, ext, fileNameThumb + _thumbnailext);
if (_thumbnails != "")
{
char sep = ';';
if (!_thumbnails.Contains(sep.ToString()) && _thumbnails.Contains(","))
sep = ',';
string[] thumbnailSizes = _thumbnails.Split(sep);
foreach (string thumb in thumbnailSizes)
{
int _thum = 0;
if (thumb != "" && int.TryParse(thumb, out _thum))
generateThumbnail(image, _thum, fileWidth, fileHeight, _fullFilePath, ext, fileNameThumb + "_" + thumb + _thumbnailext);
}
}
image.Dispose();
}
}
this.Text = _data.Value.ToString();

View File

@@ -151,44 +151,7 @@ namespace umbraco
public static string SpaceCamelCasing(string text)
{
string s = text;
if (2 > s.Length)
{
return s;
}
var sb = new System.Text.StringBuilder();
var ca = s.ToCharArray();
ca[0] = char.ToUpper(ca[0]);
sb.Append(ca[0]);
for (int i = 1; i < ca.Length - 1; i++)
{
char c = ca[i];
if (char.IsUpper(c) && (char.IsLower(ca[i + 1]) || char.IsLower(ca[i - 1])))
{
sb.Append(' ');
}
sb.Append(c);
}
sb.Append(ca[ca.Length - 1]);
return sb.ToString();
/* OLD way
string _tempString = text.Substring(0, 1).ToUpper();
for (int i = 1; i < text.Length; i++)
{
if (text.Substring(i, 1) == " ")
break;
if (text.Substring(i, 1).ToUpper() == text.Substring(i, 1))
_tempString += " ";
_tempString += text.Substring(i, 1);
}
return _tempString;
*/
return cms.helpers.Casing.SpaceCamelCasing(text);
}
[Obsolete("Use umbraco.presentation.UmbracContext.Current.GetBaseUrl()")]