Merge with 4.8.0
This commit is contained in:
BIN
lib/Examine.dll
BIN
lib/Examine.dll
Binary file not shown.
750
lib/Examine.xml
750
lib/Examine.xml
@@ -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.
@@ -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()
|
||||
|
||||
@@ -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>
|
||||
|
||||
19
src/umbraco.cms/businesslogic/Files/IFile.cs
Normal file
19
src/umbraco.cms/businesslogic/Files/IFile.cs
Normal 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);
|
||||
}
|
||||
}
|
||||
21
src/umbraco.cms/businesslogic/Files/NotAnImageException.cs
Normal file
21
src/umbraco.cms/businesslogic/Files/NotAnImageException.cs
Normal 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)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
241
src/umbraco.cms/businesslogic/Files/UmbracoFile.cs
Normal file
241
src/umbraco.cms/businesslogic/Files/UmbracoFile.cs
Normal 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);
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
74
src/umbraco.cms/businesslogic/datatype/FileHandlerData.cs
Normal file
74
src/umbraco.cms/businesslogic/datatype/FileHandlerData.cs
Normal 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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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();
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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">
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 ***********************************************/
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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()")]
|
||||
|
||||
Reference in New Issue
Block a user