diff --git a/src/Orchard.Specs/Orchard.Specs.csproj b/src/Orchard.Specs/Orchard.Specs.csproj index 86092833a..c5cb3ef99 100644 --- a/src/Orchard.Specs/Orchard.Specs.csproj +++ b/src/Orchard.Specs/Orchard.Specs.csproj @@ -44,6 +44,7 @@ ..\OrchardBasicCorrectness.ruleset AnyCPU false + 5 pdbonly @@ -55,6 +56,7 @@ AllRules.ruleset AnyCPU false + 5 diff --git a/src/Orchard.Tests.Modules/Indexing/IndexingTaskExecutorTests.cs b/src/Orchard.Tests.Modules/Indexing/IndexingTaskExecutorTests.cs index 1e84ecfbf..92368a560 100644 --- a/src/Orchard.Tests.Modules/Indexing/IndexingTaskExecutorTests.cs +++ b/src/Orchard.Tests.Modules/Indexing/IndexingTaskExecutorTests.cs @@ -14,7 +14,6 @@ using Orchard.ContentManagement.MetaData.Builders; using Orchard.ContentManagement.Records; using Orchard.Core.Common.Handlers; using Orchard.Core.Common.Models; -using Orchard.Data; using Orchard.Environment; using Orchard.Environment.Configuration; using Orchard.Environment.Extensions; @@ -69,6 +68,7 @@ namespace Orchard.Tests.Modules.Indexing { builder.RegisterType().As(); builder.RegisterType().As(); builder.RegisterType().As(); + builder.RegisterType().As(); builder.RegisterType().As(); builder.RegisterType().As(); builder.RegisterInstance(_contentDefinitionManager.Object); diff --git a/src/Orchard.Tests.Modules/Indexing/LuceneIndexProviderTests.cs b/src/Orchard.Tests.Modules/Indexing/LuceneIndexProviderTests.cs index 7ba30aa66..a3b329639 100644 --- a/src/Orchard.Tests.Modules/Indexing/LuceneIndexProviderTests.cs +++ b/src/Orchard.Tests.Modules/Indexing/LuceneIndexProviderTests.cs @@ -9,6 +9,7 @@ using Orchard.Environment.Configuration; using Orchard.FileSystems.AppData; using Orchard.Indexing; using Orchard.Tests.FileSystems.AppData; +using Orchard.Tests.Stubs; namespace Orchard.Tests.Modules.Indexing { public class LuceneIndexProviderTests { @@ -35,6 +36,7 @@ namespace Orchard.Tests.Modules.Indexing { _appDataFolder = AppDataFolderTests.CreateAppDataFolder(_basePath); var builder = new ContainerBuilder(); + builder.RegisterType().As(); builder.RegisterType().As(); builder.RegisterType().As(); builder.RegisterType().As(); diff --git a/src/Orchard.Tests.Modules/Indexing/LuceneSearchBuilderTests.cs b/src/Orchard.Tests.Modules/Indexing/LuceneSearchBuilderTests.cs index bf7504281..762c1694d 100644 --- a/src/Orchard.Tests.Modules/Indexing/LuceneSearchBuilderTests.cs +++ b/src/Orchard.Tests.Modules/Indexing/LuceneSearchBuilderTests.cs @@ -8,6 +8,7 @@ using Orchard.Environment.Configuration; using Orchard.FileSystems.AppData; using Orchard.Indexing; using Orchard.Tests.FileSystems.AppData; +using Orchard.Tests.Stubs; namespace Orchard.Tests.Modules.Indexing { public class LuceneSearchBuilderTests { @@ -34,6 +35,7 @@ namespace Orchard.Tests.Modules.Indexing { _appDataFolder = AppDataFolderTests.CreateAppDataFolder(_basePath); var builder = new ContainerBuilder(); + builder.RegisterType().As(); builder.RegisterType().As(); builder.RegisterType().As(); builder.RegisterType().As(); diff --git a/src/Orchard.Tests/Utility/Extensions/HttpRequestExtensionsTests.cs b/src/Orchard.Tests/Utility/Extensions/HttpRequestExtensionsTests.cs index e3fc3934a..09a2411e8 100644 --- a/src/Orchard.Tests/Utility/Extensions/HttpRequestExtensionsTests.cs +++ b/src/Orchard.Tests/Utility/Extensions/HttpRequestExtensionsTests.cs @@ -6,7 +6,7 @@ using Orchard.Utility.Extensions; namespace Orchard.Tests.Utility.Extensions { [TestFixture] public class HttpRequestExtensionsTests { - + [Test] public void IsLocalUrlShouldReturnFalseWhenUrlIsNullOrEmpty() { var request = new StubHttpRequest(); @@ -21,6 +21,7 @@ namespace Orchard.Tests.Utility.Extensions { var request = new StubHttpRequest(); Assert.That(request.IsLocalUrl("//"), Is.False); + Assert.That(request.IsLocalUrl(" //"), Is.False); } [Test] @@ -28,6 +29,7 @@ namespace Orchard.Tests.Utility.Extensions { var request = new StubHttpRequest(); Assert.That(request.IsLocalUrl("/\\"), Is.False); + Assert.That(request.IsLocalUrl(" /\\"), Is.False); } [Test] @@ -35,6 +37,7 @@ namespace Orchard.Tests.Utility.Extensions { var request = new StubHttpRequest(); Assert.That(request.IsLocalUrl("/"), Is.True); + Assert.That(request.IsLocalUrl("\t/"), Is.True); Assert.That(request.IsLocalUrl("/контакты"), Is.True); Assert.That(request.IsLocalUrl("/ "), Is.True); Assert.That(request.IsLocalUrl("/abc-def"), Is.True); @@ -46,6 +49,18 @@ namespace Orchard.Tests.Utility.Extensions { request.Headers.Add("Host", "localhost"); Assert.That(request.IsLocalUrl("http://localhost"), Is.True); + Assert.That(request.IsLocalUrl("https://localhost"), Is.True); + } + + [Test] + public void IsLocalUrlShouldReturnFalseForNonHttpSchemes() { + var request = new StubHttpRequest(); + request.Headers.Add("Host", "localhost"); + + Assert.That(request.IsLocalUrl("httpx://localhost"), Is.False); + Assert.That(request.IsLocalUrl("foo://localhost"), Is.False); + Assert.That(request.IsLocalUrl("data://localhost"), Is.False); + Assert.That(request.IsLocalUrl("mailto://localhost"), Is.False); } [Test] diff --git a/src/Orchard.WarmupStarter/Orchard.WarmupStarter.csproj b/src/Orchard.WarmupStarter/Orchard.WarmupStarter.csproj index d3520208f..8caa2c946 100644 --- a/src/Orchard.WarmupStarter/Orchard.WarmupStarter.csproj +++ b/src/Orchard.WarmupStarter/Orchard.WarmupStarter.csproj @@ -23,6 +23,7 @@ prompt 4 false + 5 false ..\OrchardBasicCorrectness.ruleset @@ -34,6 +35,7 @@ prompt 4 false + 5 diff --git a/src/Orchard.Web.Tests/Orchard.Web.Tests.csproj b/src/Orchard.Web.Tests/Orchard.Web.Tests.csproj index cf5193e68..4829478d3 100644 --- a/src/Orchard.Web.Tests/Orchard.Web.Tests.csproj +++ b/src/Orchard.Web.Tests/Orchard.Web.Tests.csproj @@ -44,6 +44,7 @@ ..\OrchardBasicCorrectness.ruleset AnyCPU false + 5 pdbonly @@ -54,6 +55,7 @@ 4 AllRules.ruleset false + 5 diff --git a/src/Orchard.Web/Core/Orchard.Core.csproj b/src/Orchard.Web/Core/Orchard.Core.csproj index 69102609f..7929c2a2e 100644 --- a/src/Orchard.Web/Core/Orchard.Core.csproj +++ b/src/Orchard.Web/Core/Orchard.Core.csproj @@ -37,6 +37,7 @@ 4 ..\..\OrchardBasicCorrectness.ruleset false + 5 false @@ -48,6 +49,7 @@ 4 AllRules.ruleset false + 5 diff --git a/src/Orchard.Web/Core/Settings/Metadata/ContentDefinitionManager.cs b/src/Orchard.Web/Core/Settings/Metadata/ContentDefinitionManager.cs index 283d138b3..915a6bdb4 100644 --- a/src/Orchard.Web/Core/Settings/Metadata/ContentDefinitionManager.cs +++ b/src/Orchard.Web/Core/Settings/Metadata/ContentDefinitionManager.cs @@ -189,7 +189,7 @@ namespace Orchard.Core.Settings.Metadata { private void Apply(ContentTypeDefinition model, ContentTypeDefinitionRecord record) { record.DisplayName = model.DisplayName; - record.Settings = _settingsFormatter.Map(model.Settings).ToString(); + record.Settings = Compose(_settingsFormatter.Map(model.Settings)); var toRemove = record.ContentTypePartDefinitionRecords .Where(partDefinitionRecord => model.Parts.All(part => partDefinitionRecord.ContentPartDefinitionRecord.Name != part.PartDefinition.Name)) @@ -215,7 +215,7 @@ namespace Orchard.Core.Settings.Metadata { } private void Apply(ContentPartDefinition model, ContentPartDefinitionRecord record) { - record.Settings = _settingsFormatter.Map(model.Settings).ToString(); + record.Settings = Compose(_settingsFormatter.Map(model.Settings)); var toRemove = record.ContentPartFieldDefinitionRecords .Where(partFieldDefinitionRecord => model.Fields.All(partField => partFieldDefinitionRecord.Name != partField.Name)) diff --git a/src/Orchard.Web/Core/Shapes/CoreShapes.cs b/src/Orchard.Web/Core/Shapes/CoreShapes.cs index 91b1c14b9..e2506d827 100644 --- a/src/Orchard.Web/Core/Shapes/CoreShapes.cs +++ b/src/Orchard.Web/Core/Shapes/CoreShapes.cs @@ -459,7 +459,7 @@ namespace Orchard.Core.Shapes { var appPath = httpContext == null || httpContext.Request == null ? null : httpContext.Request.ApplicationPath; - var ssl = httpContext?.Request?.IsSecureConnection ?? false; + var ssl = httpContext != null && httpContext.Request != null && httpContext.Request.IsSecureConnection; foreach (var context in requiredResources.Where(r => (includeLocation.HasValue ? r.Settings.Location == includeLocation.Value : true) && (excludeLocation.HasValue ? r.Settings.Location != excludeLocation.Value : true))) { diff --git a/src/Orchard.Web/Modules/Lucene/Drivers/LuceneSettingsPartDriver.cs b/src/Orchard.Web/Modules/Lucene/Drivers/LuceneSettingsPartDriver.cs new file mode 100644 index 000000000..cd311ab38 --- /dev/null +++ b/src/Orchard.Web/Modules/Lucene/Drivers/LuceneSettingsPartDriver.cs @@ -0,0 +1,69 @@ +using Lucene.Models; +using Lucene.Services; +using Lucene.ViewModels; +using Orchard.ContentManagement; +using Orchard.ContentManagement.Drivers; +using Orchard.Indexing; +using Orchard.Localization; +using Orchard.UI.Notify; +using System.Collections.Generic; +using System.Linq; +using System.Web.Mvc; + +namespace Lucene.Drivers { + public class LuceneSettingsPartDriver : ContentPartDriver { + private readonly IIndexManager _indexManager; + private readonly IEnumerable _analyzerSelectors; + private readonly INotifier _notifier; + + public Localizer T { get; set; } + + public LuceneSettingsPartDriver(IIndexManager indexManager, IEnumerable analyzerSelectors, INotifier notifier) { + _indexManager = indexManager; + _analyzerSelectors = analyzerSelectors; + _notifier = notifier; + T = NullLocalizer.Instance; + } + + protected override DriverResult Editor(LuceneSettingsPart part, dynamic shapeHelper) { + return ContentShape("Parts_LuceneSettings_Edit", () => { + MaintainMappings(part); + return shapeHelper.EditorTemplate( + TemplateName: "Parts.LuceneSettings", + Model: new LuceneSettingsPartEditViewModel { + LuceneAnalyzerSelectorMappings = part.LuceneAnalyzerSelectorMappings.ToArray(), + LuceneAnalyzerSelectors = _analyzerSelectors.Select(analyzerSelector => + new SelectListItem { Text = T(analyzerSelector.Name).Text, Value = analyzerSelector.Name }) + }, + Prefix: Prefix); + }); + } + + protected override DriverResult Editor(LuceneSettingsPart part, IUpdateModel updater, dynamic shapeHelper) { + var viewModel = new LuceneSettingsPartEditViewModel(); + if (updater.TryUpdateModel(viewModel, Prefix, null, null)) { + _notifier.Warning(T("Don't forget to rebuild your index in case you have changed its analyzer.")); + part.LuceneAnalyzerSelectorMappings = viewModel.LuceneAnalyzerSelectorMappings; + MaintainMappings(part); + } + + return Editor(part, shapeHelper); + } + + private void MaintainMappings(LuceneSettingsPart part) { + var analyzerProviderNames = _analyzerSelectors.Select(analyzerProvider => analyzerProvider.Name); + var indexNames = _indexManager.GetSearchIndexProvider().List(); + var maintainedMappings = part.LuceneAnalyzerSelectorMappings.ToList(); + // Removing mappings which contain a removed/invalid index or analyzer provider. + maintainedMappings.RemoveAll(mapping => !indexNames.Contains(mapping.IndexName) || !analyzerProviderNames.Contains(mapping.AnalyzerName)); + // Adding new mappings for the new indexes. + foreach (var indexName in indexNames) { + if (!maintainedMappings.Any(mapping => mapping.IndexName == indexName)) { + maintainedMappings.Add(new LuceneAnalyzerSelectorMapping { IndexName = indexName, AnalyzerName = "Default" }); + } + } + + part.LuceneAnalyzerSelectorMappings = maintainedMappings; + } + } +} \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Lucene/Handlers/LuceneSettingsPartHandler.cs b/src/Orchard.Web/Modules/Lucene/Handlers/LuceneSettingsPartHandler.cs new file mode 100644 index 000000000..85c8e8a0b --- /dev/null +++ b/src/Orchard.Web/Modules/Lucene/Handlers/LuceneSettingsPartHandler.cs @@ -0,0 +1,39 @@ +using Lucene.Models; +using Orchard.ContentManagement; +using Orchard.ContentManagement.Handlers; +using Orchard.Localization; +using Orchard.Services; +using System.Collections.Generic; + +namespace Lucene.Handlers { + public class LuceneSettingsPartHandler : ContentHandler { + public Localizer T { get; set; } + + public LuceneSettingsPartHandler(IJsonConverter jsonConverter) { + T = NullLocalizer.Instance; + + Filters.Add(new ActivatingFilter("Site")); + + OnActivated((context, part) => { + part.LuceneAnalyzerSelectorMappingsField.Loader(() => { + return string.IsNullOrEmpty(part.LuceneAnalyzerSelectorMappingsSerialized) + ? new List() + : jsonConverter.Deserialize>(part.LuceneAnalyzerSelectorMappingsSerialized); + }); + + part.LuceneAnalyzerSelectorMappingsField.Setter((value) => { + part.LuceneAnalyzerSelectorMappingsSerialized = value == null ? "[]" : jsonConverter.Serialize(value); + return value; + }); + }); + } + + protected override void GetItemMetadata(GetContentItemMetadataContext context) { + if (context.ContentItem.ContentType != "Site") return; + + base.GetItemMetadata(context); + + context.Metadata.EditorGroupInfo.Add(new GroupInfo(T("Lucene Settings")) { Id = "LuceneSettings" }); + } + } +} \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Lucene/Lucene.csproj b/src/Orchard.Web/Modules/Lucene/Lucene.csproj index 5f855dd9d..04eee793f 100644 --- a/src/Orchard.Web/Modules/Lucene/Lucene.csproj +++ b/src/Orchard.Web/Modules/Lucene/Lucene.csproj @@ -38,6 +38,7 @@ 4 ..\..\..\OrchardBasicCorrectness.ruleset false + 5 pdbonly @@ -47,6 +48,7 @@ prompt 4 false + 5 @@ -97,8 +99,12 @@ + + + + @@ -108,6 +114,7 @@ + @@ -127,6 +134,13 @@ + + + + + + + 10.0 $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) diff --git a/src/Orchard.Web/Modules/Lucene/Models/LuceneAnalyzerSelectorMapping.cs b/src/Orchard.Web/Modules/Lucene/Models/LuceneAnalyzerSelectorMapping.cs new file mode 100644 index 000000000..998004a16 --- /dev/null +++ b/src/Orchard.Web/Modules/Lucene/Models/LuceneAnalyzerSelectorMapping.cs @@ -0,0 +1,6 @@ +namespace Lucene.Models { + public class LuceneAnalyzerSelectorMapping { + public string IndexName { get; set; } + public string AnalyzerName { get; set; } + } +} \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Lucene/Models/LuceneSettingsPart.cs b/src/Orchard.Web/Modules/Lucene/Models/LuceneSettingsPart.cs new file mode 100644 index 000000000..1bbbbacdb --- /dev/null +++ b/src/Orchard.Web/Modules/Lucene/Models/LuceneSettingsPart.cs @@ -0,0 +1,21 @@ +using Lucene.Models; +using Orchard.ContentManagement; +using Orchard.ContentManagement.Utilities; +using System.Collections.Generic; + +namespace Lucene.Models { + public class LuceneSettingsPart : ContentPart { + public string LuceneAnalyzerSelectorMappingsSerialized { + get { return this.Retrieve(x => x.LuceneAnalyzerSelectorMappingsSerialized); } + set { this.Store(x => x.LuceneAnalyzerSelectorMappingsSerialized, value); } + } + + private readonly LazyField> _luceneAnalyzerSelectorMappings = new LazyField>(); + internal LazyField> LuceneAnalyzerSelectorMappingsField { get { return _luceneAnalyzerSelectorMappings; } + } + public IEnumerable LuceneAnalyzerSelectorMappings { + get { return _luceneAnalyzerSelectorMappings.Value; } + set { _luceneAnalyzerSelectorMappings.Value = value; } + } + } +} \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Lucene/Placement.info b/src/Orchard.Web/Modules/Lucene/Placement.info new file mode 100644 index 000000000..e901b27c4 --- /dev/null +++ b/src/Orchard.Web/Modules/Lucene/Placement.info @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Lucene/Services/DefaultLuceneAnalyzerProvider.cs b/src/Orchard.Web/Modules/Lucene/Services/DefaultLuceneAnalyzerProvider.cs index 8f7905727..081fb3284 100644 --- a/src/Orchard.Web/Modules/Lucene/Services/DefaultLuceneAnalyzerProvider.cs +++ b/src/Orchard.Web/Modules/Lucene/Services/DefaultLuceneAnalyzerProvider.cs @@ -1,34 +1,46 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; +using Lucene.Models; using Lucene.Net.Analysis; using Lucene.Net.Analysis.Standard; using Orchard; +using Orchard.ContentManagement; +using System.Collections.Generic; +using System.Linq; namespace Lucene.Services { public class DefaultLuceneAnalyzerProvider : ILuceneAnalyzerProvider { - + private readonly IWorkContextAccessor _wca; private IEnumerable _analyzerSelectors; - public DefaultLuceneAnalyzerProvider(IEnumerable analyzerSelectors) { + public DefaultLuceneAnalyzerProvider(IEnumerable analyzerSelectors, IWorkContextAccessor wca) { _analyzerSelectors = analyzerSelectors; + _wca = wca; } public Analyzer GetAnalyzer(string indexName) { + var luceneSettingsPart = _wca + .GetContext() + .CurrentSite + .As(); + if (luceneSettingsPart == null) { + return new StandardAnalyzer(LuceneIndexProvider.LuceneVersion); + } + + var currentIndexMapping = luceneSettingsPart + .LuceneAnalyzerSelectorMappings + .FirstOrDefault(mapping => mapping.IndexName == indexName); + if (currentIndexMapping == null) { + return new StandardAnalyzer(LuceneIndexProvider.LuceneVersion); + } + var analyzer = _analyzerSelectors + .Where(x => x.Name == currentIndexMapping.AnalyzerName) .Select(x => x.GetLuceneAnalyzer(indexName)) .Where(x => x != null) .OrderByDescending(x => x.Priority) .Select(x => x.Analyzer) .FirstOrDefault(); - if (analyzer != null) { - return analyzer; - } - - return new StandardAnalyzer(LuceneIndexProvider.LuceneVersion); + return analyzer != null ? analyzer : new StandardAnalyzer(LuceneIndexProvider.LuceneVersion); } } } diff --git a/src/Orchard.Web/Modules/Lucene/Services/DefaultLuceneAnalyzerSelector.cs b/src/Orchard.Web/Modules/Lucene/Services/DefaultLuceneAnalyzerSelector.cs index 9202aedc0..d58d430e9 100644 --- a/src/Orchard.Web/Modules/Lucene/Services/DefaultLuceneAnalyzerSelector.cs +++ b/src/Orchard.Web/Modules/Lucene/Services/DefaultLuceneAnalyzerSelector.cs @@ -12,5 +12,7 @@ namespace Lucene.Services { Analyzer = new StandardAnalyzer(LuceneIndexProvider.LuceneVersion) }; } + + public string Name { get { return "Default"; } } } } \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Lucene/Services/ILuceneAnalyzerSelector.cs b/src/Orchard.Web/Modules/Lucene/Services/ILuceneAnalyzerSelector.cs index 9a9c2319f..366983fd5 100644 --- a/src/Orchard.Web/Modules/Lucene/Services/ILuceneAnalyzerSelector.cs +++ b/src/Orchard.Web/Modules/Lucene/Services/ILuceneAnalyzerSelector.cs @@ -1,11 +1,8 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Web; -using Orchard; +using Orchard; namespace Lucene.Services { public interface ILuceneAnalyzerSelector : IDependency { LuceneAnalyzerSelectorResult GetLuceneAnalyzer(string indexName); + string Name { get; } } } \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Lucene/ViewModels/LuceneSettingsPartEditViewModel.cs b/src/Orchard.Web/Modules/Lucene/ViewModels/LuceneSettingsPartEditViewModel.cs new file mode 100644 index 000000000..1937a1791 --- /dev/null +++ b/src/Orchard.Web/Modules/Lucene/ViewModels/LuceneSettingsPartEditViewModel.cs @@ -0,0 +1,14 @@ +using Lucene.Models; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; +using System.Web.Mvc; + +namespace Lucene.ViewModels { + public class LuceneSettingsPartEditViewModel { + public LuceneAnalyzerSelectorMapping[] LuceneAnalyzerSelectorMappings { get; set; } + + public IEnumerable LuceneAnalyzerSelectors { get; set; } + } +} \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Lucene/Views/EditorTemplates/Parts.LuceneSettings.cshtml b/src/Orchard.Web/Modules/Lucene/Views/EditorTemplates/Parts.LuceneSettings.cshtml new file mode 100644 index 000000000..0eee23452 --- /dev/null +++ b/src/Orchard.Web/Modules/Lucene/Views/EditorTemplates/Parts.LuceneSettings.cshtml @@ -0,0 +1,26 @@ +@model Lucene.ViewModels.LuceneSettingsPartEditViewModel + +@using System.Linq + + + @T("Lucene Settings") + @if (!Model.LuceneAnalyzerSelectorMappings.Any()) { + @T("There is currently no mapping. Create an index first.") + } + else { + + @for (int i = 0; i < Model.LuceneAnalyzerSelectorMappings.Length; i++) { + + @Html.HiddenFor(m => Model.LuceneAnalyzerSelectorMappings[i].IndexName) + @Html.LabelFor(m => Model.LuceneAnalyzerSelectorMappings[i].AnalyzerName, T("Analyzer name for the \"{0}\" index", Model.LuceneAnalyzerSelectorMappings[i].IndexName)) + @Html.DropDownListFor(m => Model.LuceneAnalyzerSelectorMappings[i].AnalyzerName, new SelectList( + Model.LuceneAnalyzerSelectors, + "Text", + "Value", + Model.LuceneAnalyzerSelectorMappings[i].AnalyzerName + )) + + } + + } + \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Markdown/Markdown.csproj b/src/Orchard.Web/Modules/Markdown/Markdown.csproj index 8ea8612ee..484573507 100644 --- a/src/Orchard.Web/Modules/Markdown/Markdown.csproj +++ b/src/Orchard.Web/Modules/Markdown/Markdown.csproj @@ -37,6 +37,7 @@ 4 ..\..\..\OrchardBasicCorrectness.ruleset false + 5 pdbonly @@ -47,6 +48,7 @@ 4 AllRules.ruleset false + 5 diff --git a/src/Orchard.Web/Modules/Orchard.Alias/Orchard.Alias.csproj b/src/Orchard.Web/Modules/Orchard.Alias/Orchard.Alias.csproj index 647bbd846..43309329a 100644 --- a/src/Orchard.Web/Modules/Orchard.Alias/Orchard.Alias.csproj +++ b/src/Orchard.Web/Modules/Orchard.Alias/Orchard.Alias.csproj @@ -37,6 +37,7 @@ 4 ..\..\..\OrchardBasicCorrectness.ruleset false + 5 pdbonly @@ -47,6 +48,7 @@ 4 AllRules.ruleset false + 5 diff --git a/src/Orchard.Web/Modules/Orchard.AntiSpam/Orchard.AntiSpam.csproj b/src/Orchard.Web/Modules/Orchard.AntiSpam/Orchard.AntiSpam.csproj index 65260227b..e7e31b4b5 100644 --- a/src/Orchard.Web/Modules/Orchard.AntiSpam/Orchard.AntiSpam.csproj +++ b/src/Orchard.Web/Modules/Orchard.AntiSpam/Orchard.AntiSpam.csproj @@ -37,6 +37,7 @@ 4 ..\..\..\OrchardBasicCorrectness.ruleset false + 5 pdbonly @@ -47,6 +48,7 @@ 4 AllRules.ruleset false + 5 diff --git a/src/Orchard.Web/Modules/Orchard.ArchiveLater/Orchard.ArchiveLater.csproj b/src/Orchard.Web/Modules/Orchard.ArchiveLater/Orchard.ArchiveLater.csproj index fd07e175b..e445714ab 100644 --- a/src/Orchard.Web/Modules/Orchard.ArchiveLater/Orchard.ArchiveLater.csproj +++ b/src/Orchard.Web/Modules/Orchard.ArchiveLater/Orchard.ArchiveLater.csproj @@ -38,6 +38,7 @@ 4 ..\..\..\OrchardBasicCorrectness.ruleset false + 5 pdbonly @@ -47,6 +48,7 @@ prompt 4 false + 5 diff --git a/src/Orchard.Web/Modules/Orchard.AuditTrail/Models/AuditTrailEventRecord.cs b/src/Orchard.Web/Modules/Orchard.AuditTrail/Models/AuditTrailEventRecord.cs index 9b9dbcedb..81a9350bf 100644 --- a/src/Orchard.Web/Modules/Orchard.AuditTrail/Models/AuditTrailEventRecord.cs +++ b/src/Orchard.Web/Modules/Orchard.AuditTrail/Models/AuditTrailEventRecord.cs @@ -2,21 +2,63 @@ using Orchard.Data.Conventions; namespace Orchard.AuditTrail.Models { + + /// + /// Audit Trail Event Record in the database. + /// public class AuditTrailEventRecord { public virtual int Id { get; set; } + + /// + /// The time when the event occurred. + /// public virtual DateTime CreatedUtc { get; set; } + + /// + /// The user name of the user who caused the event to occur. + /// public virtual string UserName { get; set; } + + /// + /// The name of the event. + /// public virtual string EventName { get; set; } + + /// + /// The full name of the event. + /// public virtual string FullEventName { get; set; } + + /// + /// The category the event belongs to. + /// public virtual string Category { get; set; } - + + /// + /// The data of the event. + /// [StringLengthMax] public virtual string EventData { get; set; } + + /// + /// The filter key of the event. + /// public virtual string EventFilterKey { get; set; } + + /// + /// The filter data of the event. + /// public virtual string EventFilterData { get; set; } + /// + /// The comment of the event. + /// [StringLengthMax] public virtual string Comment { get; set; } + + /// + /// The IP address of the user who caused the event to occur. + /// public virtual string ClientIpAddress { get; set; } } } \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.AuditTrail/Models/AuditTrailEventRecordResult.cs b/src/Orchard.Web/Modules/Orchard.AuditTrail/Models/AuditTrailEventRecordResult.cs index 4480a7471..92db483a0 100644 --- a/src/Orchard.Web/Modules/Orchard.AuditTrail/Models/AuditTrailEventRecordResult.cs +++ b/src/Orchard.Web/Modules/Orchard.AuditTrail/Models/AuditTrailEventRecordResult.cs @@ -1,6 +1,18 @@ namespace Orchard.AuditTrail.Models { + + /// + /// The created audit trail event result + /// public class AuditTrailEventRecordResult { + + /// + /// The created + /// public AuditTrailEventRecord Record { get; set; } + + /// + /// Determines whether AuditTrailEventRecordResult is disabled for . + /// public bool IsDisabled { get; set; } } } \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.AuditTrail/Orchard.AuditTrail.csproj b/src/Orchard.Web/Modules/Orchard.AuditTrail/Orchard.AuditTrail.csproj index e5c0173b4..79bb00346 100644 --- a/src/Orchard.Web/Modules/Orchard.AuditTrail/Orchard.AuditTrail.csproj +++ b/src/Orchard.Web/Modules/Orchard.AuditTrail/Orchard.AuditTrail.csproj @@ -36,6 +36,7 @@ 4 ..\..\..\OrchardBasicCorrectness.ruleset false + 5 pdbonly @@ -46,6 +47,7 @@ 4 AllRules.ruleset false + 5 diff --git a/src/Orchard.Web/Modules/Orchard.AuditTrail/Services/AuditTrailManager.cs b/src/Orchard.Web/Modules/Orchard.AuditTrail/Services/AuditTrailManager.cs index 333e08046..63b692bc3 100644 --- a/src/Orchard.Web/Modules/Orchard.AuditTrail/Services/AuditTrailManager.cs +++ b/src/Orchard.Web/Modules/Orchard.AuditTrail/Services/AuditTrailManager.cs @@ -16,6 +16,10 @@ using Orchard.Services; using Orchard.Settings; namespace Orchard.AuditTrail.Services { + + /// + /// Manage the audit trail. + /// public class AuditTrailManager : Component, IAuditTrailManager { private readonly IRepository _auditTrailRepository; private readonly ITransactionManager _transactionManager; @@ -55,6 +59,14 @@ namespace Orchard.AuditTrail.Services { _clientHostAddressAccessor = clientHostAddressAccessor; } + /// + /// Gets a page of event records from the audit trail. + /// + /// The page number to get records from. + /// The number of records to get. + /// The value to order by. + /// Optional. An object to filter the records on. + /// A page of event records. public IPageOfItems GetRecords( int page, int pageSize, @@ -105,10 +117,20 @@ namespace Orchard.AuditTrail.Services { }; } + /// + /// Gets a single event record from the audit trail by ID. + /// + /// The event record ID. + /// A single event record. public AuditTrailEventRecord GetRecord(int id) { return _auditTrailRepository.Get(id); } + /// + /// Builds a shape tree of filter displays. + /// + /// Input for each filter builder. + /// A tree of shapes. public dynamic BuildFilterDisplay(Filters filters) { var filterDisplay = (dynamic)_shapeFactory.Create("AuditTrailFilter"); var filterDisplayContext = new DisplayFilterContext(_shapeFactory, filters, filterDisplay); @@ -126,6 +148,17 @@ namespace Orchard.AuditTrail.Services { return filterDisplay; } + /// + /// Records an audit trail event. + /// + /// The audit trail event provider type to determine the scope of the event name. + /// The shorthand name of the event + /// The user to associate with the event. This is typically the currently loggedin user. + /// A property bag of custom event data that could be useful for implementations. These values aren't stored. Use the eventData parameter to persist additional data with the event. + /// A property bag of custom event data that will be stored with the event record. + /// The name of a custom key to use when filtering events. + /// The value of a custom filter key to filter on. + /// The created audit trail event record if the specified event was not disabled. public AuditTrailEventRecordResult CreateRecord(string eventName, IUser user, IDictionary properties = null, IDictionary eventData = null, string eventFilterKey = null, string eventFilterData = null) where T : IAuditTrailEventProvider { var eventDescriptor = DescribeEvent(eventName); if (!IsEventEnabled(eventDescriptor)) @@ -168,26 +201,49 @@ namespace Orchard.AuditTrail.Services { }; } + /// + /// Describes all audit trail events provided by the system. + /// + /// A list of audit trail category descriptors. public IEnumerable DescribeCategories() { var context = DescribeProviders(); return context.Describe(); } + /// + /// Describes all audit trail event providers. + /// public DescribeContext DescribeProviders() { var context = new DescribeContext(); _providers.Describe(context); return context; } + /// + /// Describes a single audit trail event. + /// + /// The audit trail event record for which to find its descriptor. + /// A single audit trail event descriptor. public AuditTrailEventDescriptor DescribeEvent(AuditTrailEventRecord record) { return DescribeEvent(record.FullEventName) ?? AuditTrailEventDescriptor.Basic(record); } + /// + /// Describes a single audit trail event. + /// + /// The scope of the specified event name. + /// The shorthand name of the event. + /// A single audit trail event descriptor. public AuditTrailEventDescriptor DescribeEvent(string eventName) where T : IAuditTrailEventProvider { var fullyQualifiedEventName = EventNameExtensions.GetFullyQualifiedEventName(eventName); return DescribeEvent(fullyQualifiedEventName); } + /// + /// Describes a single audit trail event. + /// + /// The fully qualified event name to describe. + /// A single audit trail event descriptor. public AuditTrailEventDescriptor DescribeEvent(string fullyQualifiedEventName) { var categoryDescriptors = DescribeCategories(); var eventDescriptorQuery = diff --git a/src/Orchard.Web/Modules/Orchard.AuditTrail/Services/EventDataSerializer.cs b/src/Orchard.Web/Modules/Orchard.AuditTrail/Services/EventDataSerializer.cs index a9192ab16..0285f2078 100644 --- a/src/Orchard.Web/Modules/Orchard.AuditTrail/Services/EventDataSerializer.cs +++ b/src/Orchard.Web/Modules/Orchard.AuditTrail/Services/EventDataSerializer.cs @@ -5,7 +5,17 @@ using Newtonsoft.Json; using Orchard.Logging; namespace Orchard.AuditTrail.Services { + + /// + /// A service responsible for serializing and deserializing audit trail event data. + /// public class EventDataSerializer : Component, IEventDataSerializer { + + /// + /// Serialize event data. + /// + /// eventData to be serialized. + /// The serialized data. public string Serialize(IDictionary eventData) { try { var json = JsonConvert.SerializeObject(eventData, Formatting.None); @@ -18,6 +28,11 @@ namespace Orchard.AuditTrail.Services { return null; } + /// + /// Deserialize event data. + /// + /// eventData to be deserialized. + /// The deserialized generic dictionary public IDictionary Deserialize(string eventData) { if (String.IsNullOrWhiteSpace(eventData)) return new Dictionary(); diff --git a/src/Orchard.Web/Modules/Orchard.AuditTrail/Services/IAuditTrailManager.cs b/src/Orchard.Web/Modules/Orchard.AuditTrail/Services/IAuditTrailManager.cs index 9e06e2da8..944cdc299 100644 --- a/src/Orchard.Web/Modules/Orchard.AuditTrail/Services/IAuditTrailManager.cs +++ b/src/Orchard.Web/Modules/Orchard.AuditTrail/Services/IAuditTrailManager.cs @@ -6,7 +6,12 @@ using Orchard.Collections; using Orchard.Security; namespace Orchard.AuditTrail.Services { + + /// + /// Manage the audit trail. + /// public interface IAuditTrailManager : IDependency { + /// /// Gets a page of event records from the audit trail. /// diff --git a/src/Orchard.Web/Modules/Orchard.AuditTrail/Services/IEventDataSerializer.cs b/src/Orchard.Web/Modules/Orchard.AuditTrail/Services/IEventDataSerializer.cs index 3fef8e8c4..c38fe5144 100644 --- a/src/Orchard.Web/Modules/Orchard.AuditTrail/Services/IEventDataSerializer.cs +++ b/src/Orchard.Web/Modules/Orchard.AuditTrail/Services/IEventDataSerializer.cs @@ -1,8 +1,24 @@ using System.Collections.Generic; namespace Orchard.AuditTrail.Services { + + /// + /// A service responsible for serializing and deserializing audit trail event data. + /// public interface IEventDataSerializer : IDependency { + + /// + /// Serialize event data. + /// + /// eventData to be serialized. + /// The serialized data. string Serialize(IDictionary eventData); + + /// + /// Deserialize event data. + /// + /// eventData to be deserialized. + /// The deserialized generic dictionary IDictionary Deserialize(string eventData); } } \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.Autoroute/Orchard.Autoroute.csproj b/src/Orchard.Web/Modules/Orchard.Autoroute/Orchard.Autoroute.csproj index 5daad31c8..b226595f6 100644 --- a/src/Orchard.Web/Modules/Orchard.Autoroute/Orchard.Autoroute.csproj +++ b/src/Orchard.Web/Modules/Orchard.Autoroute/Orchard.Autoroute.csproj @@ -37,6 +37,7 @@ 4 ..\..\..\OrchardBasicCorrectness.ruleset false + 5 pdbonly @@ -47,6 +48,7 @@ 4 AllRules.ruleset false + 5 diff --git a/src/Orchard.Web/Modules/Orchard.Azure.MediaServices/Orchard.Azure.MediaServices.csproj b/src/Orchard.Web/Modules/Orchard.Azure.MediaServices/Orchard.Azure.MediaServices.csproj index dfa962e07..95a48c47d 100644 --- a/src/Orchard.Web/Modules/Orchard.Azure.MediaServices/Orchard.Azure.MediaServices.csproj +++ b/src/Orchard.Web/Modules/Orchard.Azure.MediaServices/Orchard.Azure.MediaServices.csproj @@ -36,6 +36,7 @@ 4 ..\..\..\OrchardBasicCorrectness.ruleset false + 5 pdbonly @@ -46,6 +47,7 @@ 4 AllRules.ruleset false + 5 diff --git a/src/Orchard.Web/Modules/Orchard.Azure.MediaServices/Tests/Microsoft.CloudMedia.Tests/Microsoft.CloudMedia.Tests.csproj b/src/Orchard.Web/Modules/Orchard.Azure.MediaServices/Tests/Microsoft.CloudMedia.Tests/Microsoft.CloudMedia.Tests.csproj index 7baa3a422..f3c8a6ea8 100644 --- a/src/Orchard.Web/Modules/Orchard.Azure.MediaServices/Tests/Microsoft.CloudMedia.Tests/Microsoft.CloudMedia.Tests.csproj +++ b/src/Orchard.Web/Modules/Orchard.Azure.MediaServices/Tests/Microsoft.CloudMedia.Tests/Microsoft.CloudMedia.Tests.csproj @@ -44,6 +44,7 @@ ..\OrchardBasicCorrectness.ruleset AnyCPU false + 5 pdbonly @@ -55,6 +56,7 @@ AllRules.ruleset AnyCPU false + 5 diff --git a/src/Orchard.Web/Modules/Orchard.Azure/Orchard.Azure.csproj b/src/Orchard.Web/Modules/Orchard.Azure/Orchard.Azure.csproj index cda10461d..b6d62ebcc 100644 --- a/src/Orchard.Web/Modules/Orchard.Azure/Orchard.Azure.csproj +++ b/src/Orchard.Web/Modules/Orchard.Azure/Orchard.Azure.csproj @@ -36,6 +36,7 @@ 4 ..\..\..\OrchardBasicCorrectness.ruleset false + 5 pdbonly @@ -46,6 +47,7 @@ 4 AllRules.ruleset false + 5 diff --git a/src/Orchard.Web/Modules/Orchard.Blogs/Orchard.Blogs.csproj b/src/Orchard.Web/Modules/Orchard.Blogs/Orchard.Blogs.csproj index a327d197e..a4545baca 100644 --- a/src/Orchard.Web/Modules/Orchard.Blogs/Orchard.Blogs.csproj +++ b/src/Orchard.Web/Modules/Orchard.Blogs/Orchard.Blogs.csproj @@ -37,6 +37,7 @@ 4 ..\..\..\OrchardBasicCorrectness.ruleset false + 5 pdbonly @@ -47,6 +48,7 @@ 4 AllRules.ruleset false + 5 diff --git a/src/Orchard.Web/Modules/Orchard.Caching/Orchard.Caching.csproj b/src/Orchard.Web/Modules/Orchard.Caching/Orchard.Caching.csproj index 5ce025dc4..dcc8efe1d 100644 --- a/src/Orchard.Web/Modules/Orchard.Caching/Orchard.Caching.csproj +++ b/src/Orchard.Web/Modules/Orchard.Caching/Orchard.Caching.csproj @@ -36,6 +36,7 @@ 4 ..\..\..\OrchardBasicCorrectness.ruleset false + 5 pdbonly @@ -46,6 +47,7 @@ 4 AllRules.ruleset false + 5 diff --git a/src/Orchard.Web/Modules/Orchard.CodeGeneration/Orchard.CodeGeneration.csproj b/src/Orchard.Web/Modules/Orchard.CodeGeneration/Orchard.CodeGeneration.csproj index e7c8b07d8..e615f059d 100644 --- a/src/Orchard.Web/Modules/Orchard.CodeGeneration/Orchard.CodeGeneration.csproj +++ b/src/Orchard.Web/Modules/Orchard.CodeGeneration/Orchard.CodeGeneration.csproj @@ -38,6 +38,7 @@ 4 ..\..\..\OrchardBasicCorrectness.ruleset false + 5 pdbonly @@ -47,6 +48,7 @@ prompt 4 false + 5 diff --git a/src/Orchard.Web/Modules/Orchard.Comments/Orchard.Comments.csproj b/src/Orchard.Web/Modules/Orchard.Comments/Orchard.Comments.csproj index 900a002ab..cc89b52cc 100644 --- a/src/Orchard.Web/Modules/Orchard.Comments/Orchard.Comments.csproj +++ b/src/Orchard.Web/Modules/Orchard.Comments/Orchard.Comments.csproj @@ -37,6 +37,7 @@ 4 ..\..\..\OrchardBasicCorrectness.ruleset false + 5 pdbonly @@ -47,6 +48,7 @@ 4 AllRules.ruleset false + 5 diff --git a/src/Orchard.Web/Modules/Orchard.Conditions/Orchard.Conditions.csproj b/src/Orchard.Web/Modules/Orchard.Conditions/Orchard.Conditions.csproj index cdf31e39a..5a884414e 100644 --- a/src/Orchard.Web/Modules/Orchard.Conditions/Orchard.Conditions.csproj +++ b/src/Orchard.Web/Modules/Orchard.Conditions/Orchard.Conditions.csproj @@ -36,6 +36,7 @@ 4 ..\..\..\OrchardBasicCorrectness.ruleset false + 5 pdbonly @@ -46,6 +47,7 @@ 4 AllRules.ruleset false + 5 diff --git a/src/Orchard.Web/Modules/Orchard.ContentPermissions/Orchard.ContentPermissions.csproj b/src/Orchard.Web/Modules/Orchard.ContentPermissions/Orchard.ContentPermissions.csproj index 77154566e..11b3c8a72 100644 --- a/src/Orchard.Web/Modules/Orchard.ContentPermissions/Orchard.ContentPermissions.csproj +++ b/src/Orchard.Web/Modules/Orchard.ContentPermissions/Orchard.ContentPermissions.csproj @@ -37,6 +37,7 @@ 4 ..\..\..\OrchardBasicCorrectness.ruleset false + 5 pdbonly @@ -47,6 +48,7 @@ 4 AllRules.ruleset false + 5 diff --git a/src/Orchard.Web/Modules/Orchard.ContentPicker/Handlers/ContentPickerFieldLocalizationExtensionHandler.cs b/src/Orchard.Web/Modules/Orchard.ContentPicker/Handlers/ContentPickerFieldLocalizationExtensionHandler.cs index 7b604f2f1..2f00e58e8 100644 --- a/src/Orchard.Web/Modules/Orchard.ContentPicker/Handlers/ContentPickerFieldLocalizationExtensionHandler.cs +++ b/src/Orchard.Web/Modules/Orchard.ContentPicker/Handlers/ContentPickerFieldLocalizationExtensionHandler.cs @@ -42,7 +42,7 @@ namespace Orchard.ContentPicker.Handlers { var settings = field.PartFieldDefinition.Settings.GetModel(); if (settings.TryToLocalizeItems) { //try to replace items in the field with their translation - var itemsInField = _contentManager.GetMany(field.Ids, VersionOptions.Published, QueryHints.Empty); + var itemsInField = _contentManager.GetMany(field.Ids, VersionOptions.Latest, QueryHints.Empty); if (settings.RemoveItemsWithNoLocalizationPart && itemsInField.Where(ci => !ci.Parts.Any(part => part is LocalizationPart)).Any()) { //keep only items that have a LocalizationPart _orchardServices.Notifier.Warning(T( @@ -92,7 +92,7 @@ namespace Orchard.ContentPicker.Handlers { } if (settings.AssertItemsHaveSameCulture) { //verify that the items in the ContentPickerField are all in the culture of the ContentItem whose editor we are updating - var itemsInField = _contentManager.GetMany(field.Ids, VersionOptions.Published, QueryHints.Empty); + var itemsInField = _contentManager.GetMany(field.Ids, VersionOptions.Latest, QueryHints.Empty); var itemsWithoutLocalizationPart = itemsInField.Where(ci => !ci.Parts.Any(part => part is LocalizationPart)); List badItemIds = itemsInField.Where(ci => ci.Parts.Any(part => part is LocalizationPart && ((LocalizationPart)part).Culture != lPart.Culture)).Select(ci => ci.Id).ToList(); if (itemsWithoutLocalizationPart.Count() > 0) { diff --git a/src/Orchard.Web/Modules/Orchard.ContentPicker/Orchard.ContentPicker.csproj b/src/Orchard.Web/Modules/Orchard.ContentPicker/Orchard.ContentPicker.csproj index e9dba3b52..99610943c 100644 --- a/src/Orchard.Web/Modules/Orchard.ContentPicker/Orchard.ContentPicker.csproj +++ b/src/Orchard.Web/Modules/Orchard.ContentPicker/Orchard.ContentPicker.csproj @@ -37,6 +37,7 @@ 4 ..\..\..\OrchardBasicCorrectness.ruleset false + 5 pdbonly @@ -47,6 +48,7 @@ 4 AllRules.ruleset false + 5 diff --git a/src/Orchard.Web/Modules/Orchard.ContentTypes/Migrations.cs b/src/Orchard.Web/Modules/Orchard.ContentTypes/Migrations.cs index 6d5592a70..7b345b49f 100644 --- a/src/Orchard.Web/Modules/Orchard.ContentTypes/Migrations.cs +++ b/src/Orchard.Web/Modules/Orchard.ContentTypes/Migrations.cs @@ -22,7 +22,7 @@ namespace Orchard.ContentTypes { return 1; } - public int UpgradeFrom1() { + public int UpdateFrom1() { foreach (var typeDefinition in _contentDefinitionManager.ListTypeDefinitions()) { if (typeDefinition.Settings.ContainsKey("ContentTypeSettings.Creatable") && Convert.ToBoolean(typeDefinition.Settings["ContentTypeSettings.Creatable"], CultureInfo.InvariantCulture)) { typeDefinition.Settings["ContentTypeSettings.Securable"] = "True"; diff --git a/src/Orchard.Web/Modules/Orchard.ContentTypes/Orchard.ContentTypes.csproj b/src/Orchard.Web/Modules/Orchard.ContentTypes/Orchard.ContentTypes.csproj index 4f9cf80c1..e63898923 100644 --- a/src/Orchard.Web/Modules/Orchard.ContentTypes/Orchard.ContentTypes.csproj +++ b/src/Orchard.Web/Modules/Orchard.ContentTypes/Orchard.ContentTypes.csproj @@ -38,6 +38,7 @@ 4 ..\..\..\OrchardBasicCorrectness.ruleset false + 5 pdbonly @@ -47,6 +48,7 @@ prompt 4 false + 5 diff --git a/src/Orchard.Web/Modules/Orchard.CustomForms/Orchard.CustomForms.csproj b/src/Orchard.Web/Modules/Orchard.CustomForms/Orchard.CustomForms.csproj index a5bda9352..9d56e086a 100644 --- a/src/Orchard.Web/Modules/Orchard.CustomForms/Orchard.CustomForms.csproj +++ b/src/Orchard.Web/Modules/Orchard.CustomForms/Orchard.CustomForms.csproj @@ -37,6 +37,7 @@ 4 ..\..\..\OrchardBasicCorrectness.ruleset false + 5 pdbonly @@ -47,6 +48,7 @@ 4 AllRules.ruleset false + 5 diff --git a/src/Orchard.Web/Modules/Orchard.Dashboards/Orchard.Dashboards.csproj b/src/Orchard.Web/Modules/Orchard.Dashboards/Orchard.Dashboards.csproj index c426b5143..94ee0e873 100644 --- a/src/Orchard.Web/Modules/Orchard.Dashboards/Orchard.Dashboards.csproj +++ b/src/Orchard.Web/Modules/Orchard.Dashboards/Orchard.Dashboards.csproj @@ -36,6 +36,7 @@ 4 AllRules.ruleset false + 5 pdbonly @@ -46,6 +47,7 @@ 4 AllRules.ruleset false + 5 diff --git a/src/Orchard.Web/Modules/Orchard.DesignerTools/Orchard.DesignerTools.csproj b/src/Orchard.Web/Modules/Orchard.DesignerTools/Orchard.DesignerTools.csproj index 3adc23a84..7c401fd83 100644 --- a/src/Orchard.Web/Modules/Orchard.DesignerTools/Orchard.DesignerTools.csproj +++ b/src/Orchard.Web/Modules/Orchard.DesignerTools/Orchard.DesignerTools.csproj @@ -37,6 +37,7 @@ 4 ..\..\..\OrchardBasicCorrectness.ruleset false + 5 pdbonly @@ -47,6 +48,7 @@ 4 AllRules.ruleset false + 5 diff --git a/src/Orchard.Web/Modules/Orchard.DynamicForms/Orchard.DynamicForms.csproj b/src/Orchard.Web/Modules/Orchard.DynamicForms/Orchard.DynamicForms.csproj index 419e79b9d..2e524af77 100644 --- a/src/Orchard.Web/Modules/Orchard.DynamicForms/Orchard.DynamicForms.csproj +++ b/src/Orchard.Web/Modules/Orchard.DynamicForms/Orchard.DynamicForms.csproj @@ -36,6 +36,7 @@ 4 ..\..\..\OrchardBasicCorrectness.ruleset false + 5 pdbonly @@ -46,6 +47,7 @@ 4 AllRules.ruleset false + 5 diff --git a/src/Orchard.Web/Modules/Orchard.Email/Orchard.Email.csproj b/src/Orchard.Web/Modules/Orchard.Email/Orchard.Email.csproj index a629328ae..0e891f1f8 100644 --- a/src/Orchard.Web/Modules/Orchard.Email/Orchard.Email.csproj +++ b/src/Orchard.Web/Modules/Orchard.Email/Orchard.Email.csproj @@ -37,6 +37,7 @@ 4 ..\..\..\OrchardBasicCorrectness.ruleset false + 5 pdbonly @@ -47,6 +48,7 @@ 4 AllRules.ruleset false + 5 diff --git a/src/Orchard.Web/Modules/Orchard.Fields/Orchard.Fields.csproj b/src/Orchard.Web/Modules/Orchard.Fields/Orchard.Fields.csproj index 354f9e1c8..10ef91214 100644 --- a/src/Orchard.Web/Modules/Orchard.Fields/Orchard.Fields.csproj +++ b/src/Orchard.Web/Modules/Orchard.Fields/Orchard.Fields.csproj @@ -37,6 +37,7 @@ 4 ..\..\..\OrchardBasicCorrectness.ruleset false + 5 pdbonly @@ -47,6 +48,7 @@ 4 AllRules.ruleset false + 5 diff --git a/src/Orchard.Web/Modules/Orchard.Forms/Orchard.Forms.csproj b/src/Orchard.Web/Modules/Orchard.Forms/Orchard.Forms.csproj index 8740abe40..a2976b798 100644 --- a/src/Orchard.Web/Modules/Orchard.Forms/Orchard.Forms.csproj +++ b/src/Orchard.Web/Modules/Orchard.Forms/Orchard.Forms.csproj @@ -37,6 +37,7 @@ 4 ..\..\..\OrchardBasicCorrectness.ruleset false + 5 pdbonly @@ -47,6 +48,7 @@ 4 AllRules.ruleset false + 5 diff --git a/src/Orchard.Web/Modules/Orchard.ImageEditor/Orchard.ImageEditor.csproj b/src/Orchard.Web/Modules/Orchard.ImageEditor/Orchard.ImageEditor.csproj index 15ca5c295..f3409489d 100644 --- a/src/Orchard.Web/Modules/Orchard.ImageEditor/Orchard.ImageEditor.csproj +++ b/src/Orchard.Web/Modules/Orchard.ImageEditor/Orchard.ImageEditor.csproj @@ -36,6 +36,7 @@ 4 ..\..\..\OrchardBasicCorrectness.ruleset false + 5 pdbonly @@ -46,6 +47,7 @@ 4 AllRules.ruleset false + 5 diff --git a/src/Orchard.Web/Modules/Orchard.ImportExport/Orchard.ImportExport.csproj b/src/Orchard.Web/Modules/Orchard.ImportExport/Orchard.ImportExport.csproj index 4a1b064f8..437748359 100644 --- a/src/Orchard.Web/Modules/Orchard.ImportExport/Orchard.ImportExport.csproj +++ b/src/Orchard.Web/Modules/Orchard.ImportExport/Orchard.ImportExport.csproj @@ -37,6 +37,7 @@ 4 ..\..\..\OrchardBasicCorrectness.ruleset false + 5 pdbonly @@ -46,6 +47,7 @@ prompt 4 false + 5 diff --git a/src/Orchard.Web/Modules/Orchard.Indexing/Orchard.Indexing.csproj b/src/Orchard.Web/Modules/Orchard.Indexing/Orchard.Indexing.csproj index 9646669cf..e7f25ce84 100644 --- a/src/Orchard.Web/Modules/Orchard.Indexing/Orchard.Indexing.csproj +++ b/src/Orchard.Web/Modules/Orchard.Indexing/Orchard.Indexing.csproj @@ -37,6 +37,7 @@ 4 ..\..\..\OrchardBasicCorrectness.ruleset false + 5 pdbonly @@ -47,6 +48,7 @@ 4 AllRules.ruleset false + 5 diff --git a/src/Orchard.Web/Modules/Orchard.Indexing/Services/IndexingTaskExecutor.cs b/src/Orchard.Web/Modules/Orchard.Indexing/Services/IndexingTaskExecutor.cs index 91266c902..630c2796a 100644 --- a/src/Orchard.Web/Modules/Orchard.Indexing/Services/IndexingTaskExecutor.cs +++ b/src/Orchard.Web/Modules/Orchard.Indexing/Services/IndexingTaskExecutor.cs @@ -332,7 +332,7 @@ namespace Orchard.Indexing.Services { } /// - /// Creates a IDocumentIndex instance for a specific content item id. If the content + /// Creates a IDocumentIndex instance for a specific content item id. If the content /// item is no more published, it returns null. /// private IDocumentIndex ExtractDocumentIndex(ContentItem contentItem) { diff --git a/src/Orchard.Web/Modules/Orchard.JobsQueue/Orchard.JobsQueue.csproj b/src/Orchard.Web/Modules/Orchard.JobsQueue/Orchard.JobsQueue.csproj index 6a87cbf78..634b6dedc 100644 --- a/src/Orchard.Web/Modules/Orchard.JobsQueue/Orchard.JobsQueue.csproj +++ b/src/Orchard.Web/Modules/Orchard.JobsQueue/Orchard.JobsQueue.csproj @@ -37,6 +37,7 @@ prompt 4 false + 5 ..\..\..\OrchardBasicCorrectness.ruleset @@ -48,6 +49,7 @@ 4 AllRules.ruleset false + 5 diff --git a/src/Orchard.Web/Modules/Orchard.JobsQueue/Tests/Orchard.Messaging.Tests.csproj b/src/Orchard.Web/Modules/Orchard.JobsQueue/Tests/Orchard.Messaging.Tests.csproj index 4205ce931..a230cf9e2 100644 --- a/src/Orchard.Web/Modules/Orchard.JobsQueue/Tests/Orchard.Messaging.Tests.csproj +++ b/src/Orchard.Web/Modules/Orchard.JobsQueue/Tests/Orchard.Messaging.Tests.csproj @@ -23,6 +23,7 @@ prompt 4 false + 5 pdbonly @@ -32,6 +33,7 @@ prompt 4 false + 5 diff --git a/src/Orchard.Web/Modules/Orchard.Layouts/Orchard.Layouts.csproj b/src/Orchard.Web/Modules/Orchard.Layouts/Orchard.Layouts.csproj index 0f3d26d58..9fca99e57 100644 --- a/src/Orchard.Web/Modules/Orchard.Layouts/Orchard.Layouts.csproj +++ b/src/Orchard.Web/Modules/Orchard.Layouts/Orchard.Layouts.csproj @@ -36,6 +36,7 @@ 4 ..\..\..\OrchardBasicCorrectness.ruleset false + 5 pdbonly @@ -46,6 +47,7 @@ 4 AllRules.ruleset false + 5 diff --git a/src/Orchard.Web/Modules/Orchard.Lists/Orchard.Lists.csproj b/src/Orchard.Web/Modules/Orchard.Lists/Orchard.Lists.csproj index 221b1b6f9..7b9235565 100644 --- a/src/Orchard.Web/Modules/Orchard.Lists/Orchard.Lists.csproj +++ b/src/Orchard.Web/Modules/Orchard.Lists/Orchard.Lists.csproj @@ -37,6 +37,7 @@ 4 ..\..\..\OrchardBasicCorrectness.ruleset false + 5 pdbonly @@ -47,6 +48,7 @@ 4 AllRules.ruleset false + 5 diff --git a/src/Orchard.Web/Modules/Orchard.Localization/Orchard.Localization.csproj b/src/Orchard.Web/Modules/Orchard.Localization/Orchard.Localization.csproj index b16766957..d412dc084 100644 --- a/src/Orchard.Web/Modules/Orchard.Localization/Orchard.Localization.csproj +++ b/src/Orchard.Web/Modules/Orchard.Localization/Orchard.Localization.csproj @@ -36,6 +36,7 @@ prompt 4 false + 5 ..\..\..\OrchardBasicCorrectness.ruleset @@ -47,6 +48,7 @@ 4 AllRules.ruleset false + 5 diff --git a/src/Orchard.Web/Modules/Orchard.Localization/Views/EditorTemplates/Parts/Localization.ContentTranslations.Edit.cshtml b/src/Orchard.Web/Modules/Orchard.Localization/Views/EditorTemplates/Parts/Localization.ContentTranslations.Edit.cshtml index 3f5e0ccb7..a086a9c0f 100644 --- a/src/Orchard.Web/Modules/Orchard.Localization/Views/EditorTemplates/Parts/Localization.ContentTranslations.Edit.cshtml +++ b/src/Orchard.Web/Modules/Orchard.Localization/Views/EditorTemplates/Parts/Localization.ContentTranslations.Edit.cshtml @@ -76,8 +76,15 @@ TagBuilder optionTag = new TagBuilder("option"); optionTag.Attributes["data-content-dir"] = CultureInfo.GetCultureInfo(siteCulture).TextInfo.IsRightToLeft ? "rtl" : "ltr"; - if (siteCulture == culture) { - optionTag.Attributes["selected"] = "selected"; + if(string.IsNullOrEmpty(culture)) { + if (siteCulture == WorkContext.CurrentSite.SiteCulture) { + optionTag.Attributes["selected"] = "selected"; + } + } + else { + if (siteCulture == culture) { + optionTag.Attributes["selected"] = "selected"; + } } optionTag.SetInnerText(Html.Encode(siteCulture)); selectTag.InnerHtml += optionTag.ToString(); diff --git a/src/Orchard.Web/Modules/Orchard.Media/Orchard.Media.csproj b/src/Orchard.Web/Modules/Orchard.Media/Orchard.Media.csproj index 463ac1116..0460988c7 100644 --- a/src/Orchard.Web/Modules/Orchard.Media/Orchard.Media.csproj +++ b/src/Orchard.Web/Modules/Orchard.Media/Orchard.Media.csproj @@ -37,6 +37,7 @@ 4 ..\..\..\OrchardBasicCorrectness.ruleset false + 5 pdbonly @@ -47,6 +48,7 @@ 4 AllRules.ruleset false + 5 diff --git a/src/Orchard.Web/Modules/Orchard.MediaLibrary/Orchard.MediaLibrary.csproj b/src/Orchard.Web/Modules/Orchard.MediaLibrary/Orchard.MediaLibrary.csproj index 8912dcfa0..8df0d0982 100644 --- a/src/Orchard.Web/Modules/Orchard.MediaLibrary/Orchard.MediaLibrary.csproj +++ b/src/Orchard.Web/Modules/Orchard.MediaLibrary/Orchard.MediaLibrary.csproj @@ -36,6 +36,7 @@ 4 ..\..\..\OrchardBasicCorrectness.ruleset false + 5 pdbonly @@ -46,6 +47,7 @@ 4 AllRules.ruleset false + 5 diff --git a/src/Orchard.Web/Modules/Orchard.MediaPicker/Orchard.MediaPicker.csproj b/src/Orchard.Web/Modules/Orchard.MediaPicker/Orchard.MediaPicker.csproj index eed4e0888..71770fdab 100644 --- a/src/Orchard.Web/Modules/Orchard.MediaPicker/Orchard.MediaPicker.csproj +++ b/src/Orchard.Web/Modules/Orchard.MediaPicker/Orchard.MediaPicker.csproj @@ -37,6 +37,7 @@ 4 ..\..\..\OrchardBasicCorrectness.ruleset false + 5 pdbonly @@ -47,6 +48,7 @@ 4 AllRules.ruleset false + 5 diff --git a/src/Orchard.Web/Modules/Orchard.MediaProcessing/Orchard.MediaProcessing.csproj b/src/Orchard.Web/Modules/Orchard.MediaProcessing/Orchard.MediaProcessing.csproj index 454cf9fd0..ae72c3d3b 100644 --- a/src/Orchard.Web/Modules/Orchard.MediaProcessing/Orchard.MediaProcessing.csproj +++ b/src/Orchard.Web/Modules/Orchard.MediaProcessing/Orchard.MediaProcessing.csproj @@ -37,6 +37,7 @@ 4 ..\..\..\OrchardBasicCorrectness.ruleset false + 5 pdbonly @@ -47,6 +48,7 @@ 4 AllRules.ruleset false + 5 diff --git a/src/Orchard.Web/Modules/Orchard.MessageBus/Orchard.MessageBus.csproj b/src/Orchard.Web/Modules/Orchard.MessageBus/Orchard.MessageBus.csproj index 3c738d042..8cc81cab0 100644 --- a/src/Orchard.Web/Modules/Orchard.MessageBus/Orchard.MessageBus.csproj +++ b/src/Orchard.Web/Modules/Orchard.MessageBus/Orchard.MessageBus.csproj @@ -36,6 +36,7 @@ 4 ..\..\..\OrchardBasicCorrectness.ruleset false + 5 pdbonly @@ -46,6 +47,7 @@ 4 AllRules.ruleset false + 5 diff --git a/src/Orchard.Web/Modules/Orchard.Migrations/Orchard.Migrations.csproj b/src/Orchard.Web/Modules/Orchard.Migrations/Orchard.Migrations.csproj index fed304b81..906d33635 100644 --- a/src/Orchard.Web/Modules/Orchard.Migrations/Orchard.Migrations.csproj +++ b/src/Orchard.Web/Modules/Orchard.Migrations/Orchard.Migrations.csproj @@ -38,6 +38,7 @@ 4 ..\..\..\OrchardBasicCorrectness.ruleset false + 5 pdbonly @@ -47,6 +48,7 @@ prompt 4 false + 5 diff --git a/src/Orchard.Web/Modules/Orchard.Modules/Orchard.Modules.csproj b/src/Orchard.Web/Modules/Orchard.Modules/Orchard.Modules.csproj index fd458c51b..539293f82 100644 --- a/src/Orchard.Web/Modules/Orchard.Modules/Orchard.Modules.csproj +++ b/src/Orchard.Web/Modules/Orchard.Modules/Orchard.Modules.csproj @@ -37,6 +37,7 @@ 4 ..\..\..\OrchardBasicCorrectness.ruleset false + 5 pdbonly @@ -47,6 +48,7 @@ 4 AllRules.ruleset false + 5 diff --git a/src/Orchard.Web/Modules/Orchard.MultiTenancy/Orchard.MultiTenancy.csproj b/src/Orchard.Web/Modules/Orchard.MultiTenancy/Orchard.MultiTenancy.csproj index 80bfe4304..563ed8b57 100644 --- a/src/Orchard.Web/Modules/Orchard.MultiTenancy/Orchard.MultiTenancy.csproj +++ b/src/Orchard.Web/Modules/Orchard.MultiTenancy/Orchard.MultiTenancy.csproj @@ -37,6 +37,7 @@ 4 ..\..\..\OrchardBasicCorrectness.ruleset false + 5 pdbonly @@ -47,6 +48,7 @@ 4 AllRules.ruleset false + 5 diff --git a/src/Orchard.Web/Modules/Orchard.OutputCache/Orchard.OutputCache.csproj b/src/Orchard.Web/Modules/Orchard.OutputCache/Orchard.OutputCache.csproj index 9a4520288..d96d2a44a 100644 --- a/src/Orchard.Web/Modules/Orchard.OutputCache/Orchard.OutputCache.csproj +++ b/src/Orchard.Web/Modules/Orchard.OutputCache/Orchard.OutputCache.csproj @@ -37,6 +37,7 @@ 4 ..\..\..\OrchardBasicCorrectness.ruleset false + 5 pdbonly @@ -47,6 +48,7 @@ 4 AllRules.ruleset false + 5 diff --git a/src/Orchard.Web/Modules/Orchard.Packaging/Orchard.Packaging.csproj b/src/Orchard.Web/Modules/Orchard.Packaging/Orchard.Packaging.csproj index c07cc680a..3d8d6a246 100644 --- a/src/Orchard.Web/Modules/Orchard.Packaging/Orchard.Packaging.csproj +++ b/src/Orchard.Web/Modules/Orchard.Packaging/Orchard.Packaging.csproj @@ -38,6 +38,7 @@ 4 ..\..\..\OrchardBasicCorrectness.ruleset false + 5 pdbonly @@ -47,6 +48,7 @@ prompt 4 false + 5 diff --git a/src/Orchard.Web/Modules/Orchard.Pages/Orchard.Pages.csproj b/src/Orchard.Web/Modules/Orchard.Pages/Orchard.Pages.csproj index d110034ae..c3ab8d4cf 100644 --- a/src/Orchard.Web/Modules/Orchard.Pages/Orchard.Pages.csproj +++ b/src/Orchard.Web/Modules/Orchard.Pages/Orchard.Pages.csproj @@ -36,6 +36,7 @@ prompt 4 false + 5 ..\..\..\OrchardBasicCorrectness.ruleset @@ -46,6 +47,7 @@ prompt 4 false + 5 diff --git a/src/Orchard.Web/Modules/Orchard.Projections/Orchard.Projections.csproj b/src/Orchard.Web/Modules/Orchard.Projections/Orchard.Projections.csproj index 003e87bd9..78583ac8a 100644 --- a/src/Orchard.Web/Modules/Orchard.Projections/Orchard.Projections.csproj +++ b/src/Orchard.Web/Modules/Orchard.Projections/Orchard.Projections.csproj @@ -37,6 +37,7 @@ 4 ..\..\..\OrchardBasicCorrectness.ruleset false + 5 pdbonly @@ -47,6 +48,7 @@ 4 AllRules.ruleset false + 5 diff --git a/src/Orchard.Web/Modules/Orchard.Projections/Tests/Orchard.Projections.Tests.csproj b/src/Orchard.Web/Modules/Orchard.Projections/Tests/Orchard.Projections.Tests.csproj index 248e0641b..c3613ae16 100644 --- a/src/Orchard.Web/Modules/Orchard.Projections/Tests/Orchard.Projections.Tests.csproj +++ b/src/Orchard.Web/Modules/Orchard.Projections/Tests/Orchard.Projections.Tests.csproj @@ -23,6 +23,7 @@ prompt 4 false + 5 ..\..\..\..\OrchardBasicCorrectness.ruleset @@ -33,6 +34,7 @@ prompt 4 false + 5 diff --git a/src/Orchard.Web/Modules/Orchard.PublishLater/Orchard.PublishLater.csproj b/src/Orchard.Web/Modules/Orchard.PublishLater/Orchard.PublishLater.csproj index 32da044da..7aa286c68 100644 --- a/src/Orchard.Web/Modules/Orchard.PublishLater/Orchard.PublishLater.csproj +++ b/src/Orchard.Web/Modules/Orchard.PublishLater/Orchard.PublishLater.csproj @@ -38,6 +38,7 @@ 4 ..\..\..\OrchardBasicCorrectness.ruleset false + 5 pdbonly @@ -47,6 +48,7 @@ prompt 4 false + 5 diff --git a/src/Orchard.Web/Modules/Orchard.Recipes/Orchard.Recipes.csproj b/src/Orchard.Web/Modules/Orchard.Recipes/Orchard.Recipes.csproj index d7428a54f..1288976da 100644 --- a/src/Orchard.Web/Modules/Orchard.Recipes/Orchard.Recipes.csproj +++ b/src/Orchard.Web/Modules/Orchard.Recipes/Orchard.Recipes.csproj @@ -37,6 +37,7 @@ 4 ..\..\..\OrchardBasicCorrectness.ruleset false + 5 pdbonly @@ -46,6 +47,7 @@ prompt 4 false + 5 diff --git a/src/Orchard.Web/Modules/Orchard.Redis/Orchard.Redis.csproj b/src/Orchard.Web/Modules/Orchard.Redis/Orchard.Redis.csproj index b050876b5..e5b91bbed 100644 --- a/src/Orchard.Web/Modules/Orchard.Redis/Orchard.Redis.csproj +++ b/src/Orchard.Web/Modules/Orchard.Redis/Orchard.Redis.csproj @@ -36,6 +36,7 @@ 4 ..\..\..\OrchardBasicCorrectness.ruleset false + 5 pdbonly @@ -46,6 +47,7 @@ 4 AllRules.ruleset false + 5 diff --git a/src/Orchard.Web/Modules/Orchard.Resources/Orchard.Resources.csproj b/src/Orchard.Web/Modules/Orchard.Resources/Orchard.Resources.csproj index 5587822ce..2d951840d 100644 --- a/src/Orchard.Web/Modules/Orchard.Resources/Orchard.Resources.csproj +++ b/src/Orchard.Web/Modules/Orchard.Resources/Orchard.Resources.csproj @@ -36,6 +36,7 @@ 4 ..\..\..\OrchardBasicCorrectness.ruleset false + 5 pdbonly @@ -46,6 +47,7 @@ 4 AllRules.ruleset false + 5 diff --git a/src/Orchard.Web/Modules/Orchard.Roles/Orchard.Roles.csproj b/src/Orchard.Web/Modules/Orchard.Roles/Orchard.Roles.csproj index e2ec0af1a..f062f86de 100644 --- a/src/Orchard.Web/Modules/Orchard.Roles/Orchard.Roles.csproj +++ b/src/Orchard.Web/Modules/Orchard.Roles/Orchard.Roles.csproj @@ -37,6 +37,7 @@ 4 ..\..\..\OrchardBasicCorrectness.ruleset false + 5 pdbonly @@ -47,6 +48,7 @@ 4 AllRules.ruleset false + 5 diff --git a/src/Orchard.Web/Modules/Orchard.Rules/Orchard.Rules.csproj b/src/Orchard.Web/Modules/Orchard.Rules/Orchard.Rules.csproj index 760622535..f8f52333c 100644 --- a/src/Orchard.Web/Modules/Orchard.Rules/Orchard.Rules.csproj +++ b/src/Orchard.Web/Modules/Orchard.Rules/Orchard.Rules.csproj @@ -37,6 +37,7 @@ 4 ..\..\..\OrchardBasicCorrectness.ruleset false + 5 pdbonly @@ -47,6 +48,7 @@ 4 AllRules.ruleset false + 5 diff --git a/src/Orchard.Web/Modules/Orchard.Scripting.CSharp/Orchard.Scripting.CSharp.csproj b/src/Orchard.Web/Modules/Orchard.Scripting.CSharp/Orchard.Scripting.CSharp.csproj index cf69d33f1..1d5ba5066 100644 --- a/src/Orchard.Web/Modules/Orchard.Scripting.CSharp/Orchard.Scripting.CSharp.csproj +++ b/src/Orchard.Web/Modules/Orchard.Scripting.CSharp/Orchard.Scripting.CSharp.csproj @@ -36,6 +36,7 @@ 4 ..\..\..\OrchardBasicCorrectness.ruleset false + 5 pdbonly @@ -46,6 +47,7 @@ 4 AllRules.ruleset false + 5 diff --git a/src/Orchard.Web/Modules/Orchard.Scripting.Dlr/Orchard.Scripting.Dlr.csproj b/src/Orchard.Web/Modules/Orchard.Scripting.Dlr/Orchard.Scripting.Dlr.csproj index 969bcac04..c4181b98e 100644 --- a/src/Orchard.Web/Modules/Orchard.Scripting.Dlr/Orchard.Scripting.Dlr.csproj +++ b/src/Orchard.Web/Modules/Orchard.Scripting.Dlr/Orchard.Scripting.Dlr.csproj @@ -38,6 +38,7 @@ 4 ..\..\..\OrchardBasicCorrectness.ruleset false + 5 pdbonly @@ -47,6 +48,7 @@ prompt 4 false + 5 diff --git a/src/Orchard.Web/Modules/Orchard.Scripting/Orchard.Scripting.csproj b/src/Orchard.Web/Modules/Orchard.Scripting/Orchard.Scripting.csproj index 6014edf35..c084b4fcb 100644 --- a/src/Orchard.Web/Modules/Orchard.Scripting/Orchard.Scripting.csproj +++ b/src/Orchard.Web/Modules/Orchard.Scripting/Orchard.Scripting.csproj @@ -37,6 +37,7 @@ 4 ..\..\..\OrchardBasicCorrectness.ruleset false + 5 pdbonly @@ -46,6 +47,7 @@ prompt 4 false + 5 diff --git a/src/Orchard.Web/Modules/Orchard.Search/Orchard.Search.csproj b/src/Orchard.Web/Modules/Orchard.Search/Orchard.Search.csproj index 641e7e384..24224f41c 100644 --- a/src/Orchard.Web/Modules/Orchard.Search/Orchard.Search.csproj +++ b/src/Orchard.Web/Modules/Orchard.Search/Orchard.Search.csproj @@ -38,6 +38,7 @@ 4 ..\..\..\OrchardBasicCorrectness.ruleset false + 5 pdbonly @@ -47,6 +48,7 @@ prompt 4 false + 5 diff --git a/src/Orchard.Web/Modules/Orchard.SecureSocketsLayer/Orchard.SecureSocketsLayer.csproj b/src/Orchard.Web/Modules/Orchard.SecureSocketsLayer/Orchard.SecureSocketsLayer.csproj index e1baa098b..20ef69b28 100644 --- a/src/Orchard.Web/Modules/Orchard.SecureSocketsLayer/Orchard.SecureSocketsLayer.csproj +++ b/src/Orchard.Web/Modules/Orchard.SecureSocketsLayer/Orchard.SecureSocketsLayer.csproj @@ -36,6 +36,7 @@ 4 ..\..\..\OrchardBasicCorrectness.ruleset false + 5 pdbonly @@ -46,6 +47,7 @@ 4 AllRules.ruleset false + 5 diff --git a/src/Orchard.Web/Modules/Orchard.Setup/Orchard.Setup.csproj b/src/Orchard.Web/Modules/Orchard.Setup/Orchard.Setup.csproj index 8550433f1..faea03cd4 100644 --- a/src/Orchard.Web/Modules/Orchard.Setup/Orchard.Setup.csproj +++ b/src/Orchard.Web/Modules/Orchard.Setup/Orchard.Setup.csproj @@ -37,6 +37,7 @@ 4 ..\..\..\OrchardBasicCorrectness.ruleset false + 5 pdbonly @@ -47,6 +48,7 @@ 4 AllRules.ruleset false + 5 diff --git a/src/Orchard.Web/Modules/Orchard.Tags/Migrations.cs b/src/Orchard.Web/Modules/Orchard.Tags/Migrations.cs index a14a0fd54..a4b64cc3c 100644 --- a/src/Orchard.Web/Modules/Orchard.Tags/Migrations.cs +++ b/src/Orchard.Web/Modules/Orchard.Tags/Migrations.cs @@ -36,6 +36,13 @@ namespace Orchard.Tags { return 2; } + + public int UpdateFrom2() { + SchemaBuilder.AlterTable("ContentTagRecord", table => table + .CreateIndex("IDX_TagsPartRecord_Id", "TagsPartRecord_Id") + ); + return 3; + } } [OrchardFeature("Orchard.Tags.TagCloud")] diff --git a/src/Orchard.Web/Modules/Orchard.Tags/Orchard.Tags.csproj b/src/Orchard.Web/Modules/Orchard.Tags/Orchard.Tags.csproj index c78f9ef38..aabc39e27 100644 --- a/src/Orchard.Web/Modules/Orchard.Tags/Orchard.Tags.csproj +++ b/src/Orchard.Web/Modules/Orchard.Tags/Orchard.Tags.csproj @@ -37,6 +37,7 @@ 4 ..\..\..\OrchardBasicCorrectness.ruleset false + 5 pdbonly @@ -47,6 +48,7 @@ 4 AllRules.ruleset false + 5 diff --git a/src/Orchard.Web/Modules/Orchard.TaskLease/Orchard.TaskLease.csproj b/src/Orchard.Web/Modules/Orchard.TaskLease/Orchard.TaskLease.csproj index 4e71e2eb4..49f955ef1 100644 --- a/src/Orchard.Web/Modules/Orchard.TaskLease/Orchard.TaskLease.csproj +++ b/src/Orchard.Web/Modules/Orchard.TaskLease/Orchard.TaskLease.csproj @@ -37,6 +37,7 @@ 4 ..\..\..\OrchardBasicCorrectness.ruleset false + 5 pdbonly @@ -47,6 +48,7 @@ 4 AllRules.ruleset false + 5 diff --git a/src/Orchard.Web/Modules/Orchard.TaskLease/Tests/Orchard.TaskLease.Tests/Orchard.TaskLease.Tests.csproj b/src/Orchard.Web/Modules/Orchard.TaskLease/Tests/Orchard.TaskLease.Tests/Orchard.TaskLease.Tests.csproj index 85eaf9f8a..fbf389bb0 100644 --- a/src/Orchard.Web/Modules/Orchard.TaskLease/Tests/Orchard.TaskLease.Tests/Orchard.TaskLease.Tests.csproj +++ b/src/Orchard.Web/Modules/Orchard.TaskLease/Tests/Orchard.TaskLease.Tests/Orchard.TaskLease.Tests.csproj @@ -24,6 +24,7 @@ DEBUG;TRACE prompt 4 + 5 x86 @@ -33,6 +34,7 @@ TRACE prompt 4 + 5 diff --git a/src/Orchard.Web/Modules/Orchard.Taxonomies/Migrations.cs b/src/Orchard.Web/Modules/Orchard.Taxonomies/Migrations.cs index 2a675865e..f3b32af00 100644 --- a/src/Orchard.Web/Modules/Orchard.Taxonomies/Migrations.cs +++ b/src/Orchard.Web/Modules/Orchard.Taxonomies/Migrations.cs @@ -87,5 +87,18 @@ namespace Orchard.Taxonomies { return 5; } + + public int UpdateFrom5() { + SchemaBuilder.AlterTable("TermContentItem", table => table + .CreateIndex("IDX_TermsPartRecord_id", "TermsPartRecord_id") + ); + return 6; + } + public int UpdateFrom6() { + SchemaBuilder.AlterTable("TermContentItem", table => table + .CreateIndex("IDX_TermsPartRecord_id_Field", "TermsPartRecord_id", "Field") + ); + return 7; + } } } \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.Taxonomies/Orchard.Taxonomies.csproj b/src/Orchard.Web/Modules/Orchard.Taxonomies/Orchard.Taxonomies.csproj index 31b7eb95a..8b3584c3b 100644 --- a/src/Orchard.Web/Modules/Orchard.Taxonomies/Orchard.Taxonomies.csproj +++ b/src/Orchard.Web/Modules/Orchard.Taxonomies/Orchard.Taxonomies.csproj @@ -37,6 +37,7 @@ prompt 4 false + 5 ..\..\..\OrchardBasicCorrectness.ruleset @@ -47,6 +48,7 @@ prompt 4 false + 5 diff --git a/src/Orchard.Web/Modules/Orchard.Templates/Orchard.Templates.csproj b/src/Orchard.Web/Modules/Orchard.Templates/Orchard.Templates.csproj index 6d627d3dc..fcb9eee19 100644 --- a/src/Orchard.Web/Modules/Orchard.Templates/Orchard.Templates.csproj +++ b/src/Orchard.Web/Modules/Orchard.Templates/Orchard.Templates.csproj @@ -36,6 +36,7 @@ 4 ..\..\..\OrchardBasicCorrectness.ruleset false + 5 pdbonly @@ -46,6 +47,7 @@ 4 AllRules.ruleset false + 5 diff --git a/src/Orchard.Web/Modules/Orchard.Themes/Orchard.Themes.csproj b/src/Orchard.Web/Modules/Orchard.Themes/Orchard.Themes.csproj index 57c38c187..52d7b70ee 100644 --- a/src/Orchard.Web/Modules/Orchard.Themes/Orchard.Themes.csproj +++ b/src/Orchard.Web/Modules/Orchard.Themes/Orchard.Themes.csproj @@ -37,6 +37,7 @@ 4 ..\..\..\OrchardBasicCorrectness.ruleset false + 5 pdbonly @@ -47,6 +48,7 @@ 4 AllRules.ruleset false + 5 diff --git a/src/Orchard.Web/Modules/Orchard.Tokens/Orchard.Tokens.csproj b/src/Orchard.Web/Modules/Orchard.Tokens/Orchard.Tokens.csproj index b63b0f830..e2113d1b7 100644 --- a/src/Orchard.Web/Modules/Orchard.Tokens/Orchard.Tokens.csproj +++ b/src/Orchard.Web/Modules/Orchard.Tokens/Orchard.Tokens.csproj @@ -37,6 +37,7 @@ 4 ..\..\..\OrchardBasicCorrectness.ruleset false + 5 pdbonly @@ -47,6 +48,7 @@ 4 AllRules.ruleset false + 5 diff --git a/src/Orchard.Web/Modules/Orchard.Tokens/Tests/Orchard.Tokens.Tests.csproj b/src/Orchard.Web/Modules/Orchard.Tokens/Tests/Orchard.Tokens.Tests.csproj index 5a6d5f20b..24a5c4970 100644 --- a/src/Orchard.Web/Modules/Orchard.Tokens/Tests/Orchard.Tokens.Tests.csproj +++ b/src/Orchard.Web/Modules/Orchard.Tokens/Tests/Orchard.Tokens.Tests.csproj @@ -23,6 +23,7 @@ prompt 4 false + 5 ..\..\..\..\OrchardBasicCorrectness.ruleset @@ -33,6 +34,7 @@ prompt 4 false + 5 diff --git a/src/Orchard.Web/Modules/Orchard.Users/Orchard.Users.csproj b/src/Orchard.Web/Modules/Orchard.Users/Orchard.Users.csproj index dfc015d11..2938e522a 100644 --- a/src/Orchard.Web/Modules/Orchard.Users/Orchard.Users.csproj +++ b/src/Orchard.Web/Modules/Orchard.Users/Orchard.Users.csproj @@ -37,6 +37,7 @@ 4 ..\..\..\OrchardBasicCorrectness.ruleset false + 5 pdbonly @@ -47,6 +48,7 @@ 4 AllRules.ruleset false + 5 diff --git a/src/Orchard.Web/Modules/Orchard.Users/Views/Items/Content-User.Edit.cshtml b/src/Orchard.Web/Modules/Orchard.Users/Views/Items/Content-User.Edit.cshtml index ed8c56e75..53f894d9d 100644 --- a/src/Orchard.Web/Modules/Orchard.Users/Views/Items/Content-User.Edit.cshtml +++ b/src/Orchard.Web/Modules/Orchard.Users/Views/Items/Content-User.Edit.cshtml @@ -1,13 +1,19 @@ - @Display(Model.Content) + @if (Model.Content != null) { + + @Display(Model.Content) + + } - - @Display(Model.Sidebar) - + @if (Model.Sidebar != null) { + + @Display(Model.Sidebar) + + } @if (!String.IsNullOrWhiteSpace(Request.QueryString["returnUrl"])) { @Html.Hidden("returnUrl", Request.QueryString["returnUrl"]) -} +} \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.Warmup/Orchard.Warmup.csproj b/src/Orchard.Web/Modules/Orchard.Warmup/Orchard.Warmup.csproj index 377d6aa04..7eb6380c2 100644 --- a/src/Orchard.Web/Modules/Orchard.Warmup/Orchard.Warmup.csproj +++ b/src/Orchard.Web/Modules/Orchard.Warmup/Orchard.Warmup.csproj @@ -37,6 +37,7 @@ 4 ..\..\..\OrchardBasicCorrectness.ruleset false + 5 pdbonly @@ -47,6 +48,7 @@ 4 AllRules.ruleset false + 5 diff --git a/src/Orchard.Web/Modules/Orchard.Widgets/Orchard.Widgets.csproj b/src/Orchard.Web/Modules/Orchard.Widgets/Orchard.Widgets.csproj index 8b2f667a2..69a5bf57d 100644 --- a/src/Orchard.Web/Modules/Orchard.Widgets/Orchard.Widgets.csproj +++ b/src/Orchard.Web/Modules/Orchard.Widgets/Orchard.Widgets.csproj @@ -38,6 +38,7 @@ 4 ..\..\..\OrchardBasicCorrectness.ruleset false + 5 pdbonly @@ -47,6 +48,7 @@ prompt 4 false + 5 diff --git a/src/Orchard.Web/Modules/Orchard.Workflows/Orchard.Workflows.csproj b/src/Orchard.Web/Modules/Orchard.Workflows/Orchard.Workflows.csproj index dd187c7d6..046da4364 100644 --- a/src/Orchard.Web/Modules/Orchard.Workflows/Orchard.Workflows.csproj +++ b/src/Orchard.Web/Modules/Orchard.Workflows/Orchard.Workflows.csproj @@ -36,6 +36,7 @@ 4 ..\..\..\OrchardBasicCorrectness.ruleset false + 5 pdbonly @@ -46,6 +47,7 @@ 4 AllRules.ruleset false + 5 diff --git a/src/Orchard.Web/Modules/Orchard.jQuery/Orchard.jQuery.csproj b/src/Orchard.Web/Modules/Orchard.jQuery/Orchard.jQuery.csproj index 4c6a00771..802d349d9 100644 --- a/src/Orchard.Web/Modules/Orchard.jQuery/Orchard.jQuery.csproj +++ b/src/Orchard.Web/Modules/Orchard.jQuery/Orchard.jQuery.csproj @@ -37,6 +37,7 @@ 4 ..\..\..\OrchardBasicCorrectness.ruleset false + 5 pdbonly @@ -47,6 +48,7 @@ 4 AllRules.ruleset false + 5 diff --git a/src/Orchard.Web/Modules/SysCache/SysCache.csproj b/src/Orchard.Web/Modules/SysCache/SysCache.csproj index a21cc50e1..77497e049 100644 --- a/src/Orchard.Web/Modules/SysCache/SysCache.csproj +++ b/src/Orchard.Web/Modules/SysCache/SysCache.csproj @@ -37,6 +37,7 @@ 4 ..\..\..\OrchardBasicCorrectness.ruleset false + 5 pdbonly @@ -47,6 +48,7 @@ 4 AllRules.ruleset false + 5 diff --git a/src/Orchard.Web/Modules/TinyMce/TinyMce.csproj b/src/Orchard.Web/Modules/TinyMce/TinyMce.csproj index 85b983fca..a32116086 100644 --- a/src/Orchard.Web/Modules/TinyMce/TinyMce.csproj +++ b/src/Orchard.Web/Modules/TinyMce/TinyMce.csproj @@ -37,6 +37,7 @@ 4 ..\..\..\OrchardBasicCorrectness.ruleset false + 5 pdbonly @@ -47,6 +48,7 @@ 4 AllRules.ruleset false + 5 diff --git a/src/Orchard.Web/Modules/Upgrade/Upgrade.csproj b/src/Orchard.Web/Modules/Upgrade/Upgrade.csproj index 9d5640a46..d776269c0 100644 --- a/src/Orchard.Web/Modules/Upgrade/Upgrade.csproj +++ b/src/Orchard.Web/Modules/Upgrade/Upgrade.csproj @@ -36,6 +36,7 @@ 4 ..\..\..\OrchardBasicCorrectness.ruleset false + 5 pdbonly @@ -46,6 +47,7 @@ 4 AllRules.ruleset false + 5 diff --git a/src/Orchard.Web/Orchard.Web.csproj b/src/Orchard.Web/Orchard.Web.csproj index 1bac8b61d..11d616d3a 100644 --- a/src/Orchard.Web/Orchard.Web.csproj +++ b/src/Orchard.Web/Orchard.Web.csproj @@ -37,6 +37,7 @@ false false false + 5 pdbonly @@ -48,6 +49,7 @@ AllRules.ruleset AllFilesInProjectFolder false + 5 diff --git a/src/Orchard.Web/Themes/Themes.csproj b/src/Orchard.Web/Themes/Themes.csproj index ea2ca7c15..04b253ab1 100644 --- a/src/Orchard.Web/Themes/Themes.csproj +++ b/src/Orchard.Web/Themes/Themes.csproj @@ -37,6 +37,7 @@ 4 ..\..\OrchardBasicCorrectness.ruleset false + 5 pdbonly @@ -47,6 +48,7 @@ 4 AllRules.ruleset false + 5 diff --git a/src/Orchard/Environment/ShellBuilders/ShellContainerFactory.cs b/src/Orchard/Environment/ShellBuilders/ShellContainerFactory.cs index 1c0d79f38..f414f6a0c 100644 --- a/src/Orchard/Environment/ShellBuilders/ShellContainerFactory.cs +++ b/src/Orchard/Environment/ShellBuilders/ShellContainerFactory.cs @@ -313,8 +313,8 @@ namespace Orchard.Environment.ShellBuilders { ImplementationType = implementationType; } - public string Name { get; } - public Type ImplementationType { get; } + public string Name { get; private set; } + public Type ImplementationType { get; private set; } } private class DecoratorRegistration { @@ -324,9 +324,9 @@ namespace Orchard.Environment.ShellBuilders { IsDecorated = isDecorated; } - public Type InterfaceType { get; } - public ItemToBeRegistered ItemToBeRegistered { get; } - public bool IsDecorated { get; } + public Type InterfaceType { get; private set; } + public ItemToBeRegistered ItemToBeRegistered { get; private set; } + public bool IsDecorated { get; private set; } } } } \ No newline at end of file diff --git a/src/Orchard/Localization/Services/LocalizationStreamParser.cs b/src/Orchard/Localization/Services/LocalizationStreamParser.cs index b2958e04f..ad824bc58 100644 --- a/src/Orchard/Localization/Services/LocalizationStreamParser.cs +++ b/src/Orchard/Localization/Services/LocalizationStreamParser.cs @@ -18,7 +18,7 @@ namespace Orchard.Localization.Services { Logger = NullLogger.Instance; } - public ILogger Logger { get; } + public ILogger Logger { get; private set; } public void ParseLocalizationStream(string text, IDictionary translations, bool merge) { var reader = new StringReader(text); diff --git a/src/Orchard/Mvc/Routes/StandardExtensionRouteProvider.cs b/src/Orchard/Mvc/Routes/StandardExtensionRouteProvider.cs index 4fba14c91..d854ad88b 100644 --- a/src/Orchard/Mvc/Routes/StandardExtensionRouteProvider.cs +++ b/src/Orchard/Mvc/Routes/StandardExtensionRouteProvider.cs @@ -21,47 +21,59 @@ namespace Orchard.Mvc.Routes { foreach (var item in displayPathsPerArea) { var areaName = item.Key; - var extensionDescriptor = item.Distinct().Single(); - var displayPath = extensionDescriptor.Path; - SessionStateBehavior defaultSessionState; - Enum.TryParse(extensionDescriptor.SessionState, true /*ignoreCase*/, out defaultSessionState); + var extensionDescriptors = item.Distinct(); + + var displayPaths = new System.Collections.Generic.HashSet(); + + foreach (var extensionDescriptor in extensionDescriptors) + { + var displayPath = extensionDescriptor.Path; + + if (!displayPaths.Contains(displayPath)) + { + displayPaths.Add(displayPath); + + SessionStateBehavior defaultSessionState; + Enum.TryParse(extensionDescriptor.SessionState, true /*ignoreCase*/, out defaultSessionState); - routes.Add(new RouteDescriptor { - Priority = -10, - SessionState = defaultSessionState, - Route = new Route( - "Admin/" + displayPath + "/{action}/{id}", - new RouteValueDictionary { - {"area", areaName}, - {"controller", "admin"}, - {"action", "index"}, - {"id", ""} - }, - new RouteValueDictionary(), - new RouteValueDictionary { - {"area", areaName} - }, - new MvcRouteHandler()) - }); + routes.Add(new RouteDescriptor { + Priority = -10, + SessionState = defaultSessionState, + Route = new Route( + "Admin/" + displayPath + "/{action}/{id}", + new RouteValueDictionary { + {"area", areaName}, + {"controller", "admin"}, + {"action", "index"}, + {"id", ""} + }, + new RouteValueDictionary(), + new RouteValueDictionary { + {"area", areaName} + }, + new MvcRouteHandler()) + }); - routes.Add(new RouteDescriptor { - Priority = -10, - SessionState = defaultSessionState, - Route = new Route( - displayPath + "/{controller}/{action}/{id}", - new RouteValueDictionary { - {"area", areaName}, - {"controller", "home"}, - {"action", "index"}, - {"id", ""} - }, - new RouteValueDictionary(), - new RouteValueDictionary { - {"area", areaName} - }, - new MvcRouteHandler()) - }); + routes.Add(new RouteDescriptor { + Priority = -10, + SessionState = defaultSessionState, + Route = new Route( + displayPath + "/{controller}/{action}/{id}", + new RouteValueDictionary { + {"area", areaName}, + {"controller", "home"}, + {"action", "index"}, + {"id", ""} + }, + new RouteValueDictionary(), + new RouteValueDictionary { + {"area", areaName} + }, + new MvcRouteHandler()) + }); + } + } } } } diff --git a/src/Orchard/Orchard.Framework.csproj b/src/Orchard/Orchard.Framework.csproj index d5281b7d4..2623e16a4 100644 --- a/src/Orchard/Orchard.Framework.csproj +++ b/src/Orchard/Orchard.Framework.csproj @@ -43,6 +43,7 @@ 4 ..\OrchardBasicCorrectness.ruleset false + 5 false @@ -56,6 +57,7 @@ 4 AllRules.ruleset false + 5 0436 diff --git a/src/Orchard/Utility/Extensions/HttpRequestExtensions.cs b/src/Orchard/Utility/Extensions/HttpRequestExtensions.cs index 589ecc302..b550c5023 100644 --- a/src/Orchard/Utility/Extensions/HttpRequestExtensions.cs +++ b/src/Orchard/Utility/Extensions/HttpRequestExtensions.cs @@ -72,6 +72,8 @@ namespace Orchard.Utility.Extensions { return false; } + url = url.Trim(); + if (url.StartsWith("~/")) { return true; } @@ -88,6 +90,12 @@ namespace Orchard.Utility.Extensions { // at this point, check for an fully qualified url try { var uri = new Uri(url); + + if (!uri.Scheme.Equals(Uri.UriSchemeHttp, StringComparison.OrdinalIgnoreCase) + && !uri.Scheme.Equals(Uri.UriSchemeHttps, StringComparison.OrdinalIgnoreCase)) { + return false; + } + if (uri.Authority.Equals(request.Headers["Host"], StringComparison.OrdinalIgnoreCase)) { return true; } diff --git a/src/Tools/MSBuild.Orchard.Tasks/MSBuild.Orchard.Tasks.csproj b/src/Tools/MSBuild.Orchard.Tasks/MSBuild.Orchard.Tasks.csproj index 35c2ea066..b54516a93 100644 --- a/src/Tools/MSBuild.Orchard.Tasks/MSBuild.Orchard.Tasks.csproj +++ b/src/Tools/MSBuild.Orchard.Tasks/MSBuild.Orchard.Tasks.csproj @@ -43,6 +43,7 @@ 4 ..\..\OrchardBasicCorrectness.ruleset false + 5 pdbonly @@ -53,6 +54,7 @@ 4 AllRules.ruleset false + 5 diff --git a/src/Tools/Orchard.Tests/Orchard.Tests.csproj b/src/Tools/Orchard.Tests/Orchard.Tests.csproj index 9570e1f88..ddd7b66fe 100644 --- a/src/Tools/Orchard.Tests/Orchard.Tests.csproj +++ b/src/Tools/Orchard.Tests/Orchard.Tests.csproj @@ -44,6 +44,7 @@ x86 ..\..\OrchardBasicCorrectness.ruleset false + 5 pdbonly @@ -54,6 +55,7 @@ 4 AllRules.ruleset false + 5 diff --git a/src/Tools/Orchard/Orchard.csproj b/src/Tools/Orchard/Orchard.csproj index ed43d783a..4f3b9f5e6 100644 --- a/src/Tools/Orchard/Orchard.csproj +++ b/src/Tools/Orchard/Orchard.csproj @@ -46,6 +46,7 @@ AnyCPU ..\..\OrchardBasicCorrectness.ruleset false + 5 pdbonly @@ -57,6 +58,7 @@ AnyCPU AllRules.ruleset false + 5