diff --git a/src/Orchard.Core.Tests/Orchard.Core.Tests.csproj b/src/Orchard.Core.Tests/Orchard.Core.Tests.csproj
index a242b00f6..2606ff580 100644
--- a/src/Orchard.Core.Tests/Orchard.Core.Tests.csproj
+++ b/src/Orchard.Core.Tests/Orchard.Core.Tests.csproj
@@ -41,7 +41,7 @@
DEBUG;TRACE
prompt
4
- ..\OrchardSecurity.ruleset
+ ..\OrchardBasicCorrectness.ruleset
AnyCPU
diff --git a/src/Orchard.Profile/Orchard.Profile.csproj b/src/Orchard.Profile/Orchard.Profile.csproj
index 254071cf7..d69ca346b 100644
--- a/src/Orchard.Profile/Orchard.Profile.csproj
+++ b/src/Orchard.Profile/Orchard.Profile.csproj
@@ -42,7 +42,7 @@
prompt
4
AnyCPU
- ..\OrchardSecurity.ruleset
+ ..\OrchardBasicCorrectness.ruleset
pdbonly
diff --git a/src/Orchard.Specs/Orchard.Specs.csproj b/src/Orchard.Specs/Orchard.Specs.csproj
index 3563e0cfa..c23a7808d 100644
--- a/src/Orchard.Specs/Orchard.Specs.csproj
+++ b/src/Orchard.Specs/Orchard.Specs.csproj
@@ -41,7 +41,7 @@
DEBUG;TRACE
prompt
4
- ..\OrchardSecurity.ruleset
+ ..\OrchardBasicCorrectness.ruleset
AnyCPU
diff --git a/src/Orchard.Tests.Modules/Orchard.Tests.Modules.csproj b/src/Orchard.Tests.Modules/Orchard.Tests.Modules.csproj
index c6f555fc1..77eb787f7 100644
--- a/src/Orchard.Tests.Modules/Orchard.Tests.Modules.csproj
+++ b/src/Orchard.Tests.Modules/Orchard.Tests.Modules.csproj
@@ -41,7 +41,7 @@
DEBUG;TRACE
prompt
4
- ..\OrchardSecurity.ruleset
+ ..\OrchardBasicCorrectness.ruleset
AnyCPU
diff --git a/src/Orchard.Tests/Orchard.Framework.Tests.csproj b/src/Orchard.Tests/Orchard.Framework.Tests.csproj
index 1b2f8d313..f731ae7c3 100644
--- a/src/Orchard.Tests/Orchard.Framework.Tests.csproj
+++ b/src/Orchard.Tests/Orchard.Framework.Tests.csproj
@@ -41,7 +41,7 @@
DEBUG;TRACE
prompt
4
- ..\OrchardSecurity.ruleset
+ ..\OrchardBasicCorrectness.ruleset
AnyCPU
diff --git a/src/Orchard.Web.Tests/Orchard.Web.Tests.csproj b/src/Orchard.Web.Tests/Orchard.Web.Tests.csproj
index 9ac547fee..57062e2c4 100644
--- a/src/Orchard.Web.Tests/Orchard.Web.Tests.csproj
+++ b/src/Orchard.Web.Tests/Orchard.Web.Tests.csproj
@@ -41,7 +41,7 @@
DEBUG;TRACE
prompt
4
- ..\OrchardSecurity.ruleset
+ ..\OrchardBasicCorrectness.ruleset
AnyCPU
diff --git a/src/Orchard.Web/Core/Messaging/Services/DefaultMessageManager.cs b/src/Orchard.Web/Core/Messaging/Services/DefaultMessageManager.cs
index 45afd27cb..ce8da0092 100644
--- a/src/Orchard.Web/Core/Messaging/Services/DefaultMessageManager.cs
+++ b/src/Orchard.Web/Core/Messaging/Services/DefaultMessageManager.cs
@@ -50,19 +50,25 @@ namespace Orchard.Core.Messaging.Services {
Service = service
};
- if ( properties != null ) {
- foreach (var key in properties.Keys)
- context.Properties.Add(key, properties[key]);
+ try {
+
+ if (properties != null) {
+ foreach (var key in properties.Keys)
+ context.Properties.Add(key, properties[key]);
+ }
+
+ _messageEventHandler.Sending(context);
+
+ foreach (var channel in _channels) {
+ channel.SendMessage(context);
+ }
+
+ _messageEventHandler.Sent(context);
}
-
- _messageEventHandler.Sending(context);
-
- foreach ( var channel in _channels ) {
- channel.SendMessage(context);
+ finally {
+ context.MailMessage.Dispose();
}
- _messageEventHandler.Sent(context);
-
Logger.Information("Message {0} sent", type);
}
catch ( Exception e ) {
diff --git a/src/Orchard.Web/Core/Orchard.Core.csproj b/src/Orchard.Web/Core/Orchard.Core.csproj
index 5e81fb110..574db5b4a 100644
--- a/src/Orchard.Web/Core/Orchard.Core.csproj
+++ b/src/Orchard.Web/Core/Orchard.Core.csproj
@@ -27,7 +27,7 @@
DEBUG;TRACE
prompt
4
- ..\..\OrchardSecurity.ruleset
+ ..\..\OrchardBasicCorrectness.ruleset
pdbonly
diff --git a/src/Orchard.Web/Core/Routable/Services/RoutableService.cs b/src/Orchard.Web/Core/Routable/Services/RoutableService.cs
index 5627e9495..b5403aa88 100644
--- a/src/Orchard.Web/Core/Routable/Services/RoutableService.cs
+++ b/src/Orchard.Web/Core/Routable/Services/RoutableService.cs
@@ -13,7 +13,6 @@ namespace Orchard.Core.Routable.Services {
_contentManager = contentManager;
}
- [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1308:NormalizeStringsToUppercase", Justification = "Slugs should be lowercase.")]
public void FillSlugFromTitle(TModel model) where TModel : RoutePart {
if (!string.IsNullOrEmpty(model.Slug) || string.IsNullOrEmpty(model.Title))
return;
diff --git a/src/Orchard.Web/Modules/Lucene/Lucene.csproj b/src/Orchard.Web/Modules/Lucene/Lucene.csproj
index b1569596e..aae1856c9 100644
--- a/src/Orchard.Web/Modules/Lucene/Lucene.csproj
+++ b/src/Orchard.Web/Modules/Lucene/Lucene.csproj
@@ -23,7 +23,7 @@
DEBUG;TRACE
prompt
4
- ..\..\..\OrchardSecurity.ruleset
+ ..\..\..\OrchardBasicCorrectness.ruleset
pdbonly
diff --git a/src/Orchard.Web/Modules/Orchard.ArchiveLater/Orchard.ArchiveLater.csproj b/src/Orchard.Web/Modules/Orchard.ArchiveLater/Orchard.ArchiveLater.csproj
index 7f2c56960..7b74fbca1 100644
--- a/src/Orchard.Web/Modules/Orchard.ArchiveLater/Orchard.ArchiveLater.csproj
+++ b/src/Orchard.Web/Modules/Orchard.ArchiveLater/Orchard.ArchiveLater.csproj
@@ -23,7 +23,7 @@
DEBUG;TRACE
prompt
4
- ..\..\..\OrchardSecurity.ruleset
+ ..\..\..\OrchardBasicCorrectness.ruleset
pdbonly
diff --git a/src/Orchard.Web/Modules/Orchard.Blogs/Orchard.Blogs.csproj b/src/Orchard.Web/Modules/Orchard.Blogs/Orchard.Blogs.csproj
index a3de3972d..6ba4015e9 100644
--- a/src/Orchard.Web/Modules/Orchard.Blogs/Orchard.Blogs.csproj
+++ b/src/Orchard.Web/Modules/Orchard.Blogs/Orchard.Blogs.csproj
@@ -27,7 +27,7 @@
DEBUG;TRACE
prompt
4
- ..\..\..\OrchardSecurity.ruleset
+ ..\..\..\OrchardBasicCorrectness.ruleset
pdbonly
diff --git a/src/Orchard.Web/Modules/Orchard.CodeGeneration/Commands/CodeGenerationCommands.cs b/src/Orchard.Web/Modules/Orchard.CodeGeneration/Commands/CodeGenerationCommands.cs
index edd77bbef..74ca7d5f1 100644
--- a/src/Orchard.Web/Modules/Orchard.CodeGeneration/Commands/CodeGenerationCommands.cs
+++ b/src/Orchard.Web/Modules/Orchard.CodeGeneration/Commands/CodeGenerationCommands.cs
@@ -75,18 +75,19 @@ namespace Orchard.CodeGeneration.Commands {
}
List commands = _schemaCommandGenerator.GetCreateFeatureCommands(featureName, false).ToList();
-
- var stringWriter = new StringWriter();
- var interpreter = new CodeGenerationCommandInterpreter(stringWriter);
+ string dataMigrationText;
+ using (var stringWriter = new StringWriter()) {
+ var interpreter = new CodeGenerationCommandInterpreter(stringWriter);
- foreach (var command in commands) {
- interpreter.Visit(command);
- stringWriter.WriteLine();
+ foreach (var command in commands) {
+ interpreter.Visit(command);
+ stringWriter.WriteLine();
+ }
+
+ dataMigrationText = File.ReadAllText(templatesPath + "DataMigration.txt");
+ dataMigrationText = dataMigrationText.Replace("$$FeatureName$$", featureName);
+ dataMigrationText = dataMigrationText.Replace("$$Commands$$", stringWriter.ToString());
}
-
- string dataMigrationText = File.ReadAllText(templatesPath + "DataMigration.txt");
- dataMigrationText = dataMigrationText.Replace("$$FeatureName$$", featureName);
- dataMigrationText = dataMigrationText.Replace("$$Commands$$", stringWriter.ToString());
File.WriteAllText(dataMigrationFilePath, dataMigrationText);
string projectFileText = File.ReadAllText(moduleCsProjPath);
@@ -220,7 +221,7 @@ namespace Orchard.CodeGeneration.Commands {
foreach(var folder in _moduleDirectories) {
Directory.CreateDirectory(modulePath + folder);
- if (folder != "") {
+ if (!String.IsNullOrEmpty(folder)) {
folders.Add(modulePath + folder);
}
}
@@ -266,7 +267,7 @@ namespace Orchard.CodeGeneration.Commands {
foreach (var folderName in _themeDirectories) {
var folder = themePath + folderName;
Directory.CreateDirectory(folder);
- if (folderName != "") {
+ if (!String.IsNullOrEmpty(folderName)) {
createdFolders.Add(folder);
}
}
diff --git a/src/Orchard.Web/Modules/Orchard.CodeGeneration/Orchard.CodeGeneration.csproj b/src/Orchard.Web/Modules/Orchard.CodeGeneration/Orchard.CodeGeneration.csproj
index 3b74c4504..340bb0aca 100644
--- a/src/Orchard.Web/Modules/Orchard.CodeGeneration/Orchard.CodeGeneration.csproj
+++ b/src/Orchard.Web/Modules/Orchard.CodeGeneration/Orchard.CodeGeneration.csproj
@@ -23,7 +23,7 @@
DEBUG;TRACE
prompt
4
- ..\..\..\OrchardSecurity.ruleset
+ ..\..\..\OrchardBasicCorrectness.ruleset
pdbonly
diff --git a/src/Orchard.Web/Modules/Orchard.Comments/Orchard.Comments.csproj b/src/Orchard.Web/Modules/Orchard.Comments/Orchard.Comments.csproj
index 8090afe68..b4fef87e5 100644
--- a/src/Orchard.Web/Modules/Orchard.Comments/Orchard.Comments.csproj
+++ b/src/Orchard.Web/Modules/Orchard.Comments/Orchard.Comments.csproj
@@ -27,7 +27,7 @@
DEBUG;TRACE
prompt
4
- ..\..\..\OrchardSecurity.ruleset
+ ..\..\..\OrchardBasicCorrectness.ruleset
pdbonly
diff --git a/src/Orchard.Web/Modules/Orchard.ContentTypes/Orchard.ContentTypes.csproj b/src/Orchard.Web/Modules/Orchard.ContentTypes/Orchard.ContentTypes.csproj
index 9410892f2..0f87004da 100644
--- a/src/Orchard.Web/Modules/Orchard.ContentTypes/Orchard.ContentTypes.csproj
+++ b/src/Orchard.Web/Modules/Orchard.ContentTypes/Orchard.ContentTypes.csproj
@@ -23,7 +23,7 @@
DEBUG;TRACE
prompt
4
- ..\..\..\OrchardSecurity.ruleset
+ ..\..\..\OrchardBasicCorrectness.ruleset
pdbonly
diff --git a/src/Orchard.Web/Modules/Orchard.Email/Orchard.Email.csproj b/src/Orchard.Web/Modules/Orchard.Email/Orchard.Email.csproj
index d85624e67..0e6b5b122 100644
--- a/src/Orchard.Web/Modules/Orchard.Email/Orchard.Email.csproj
+++ b/src/Orchard.Web/Modules/Orchard.Email/Orchard.Email.csproj
@@ -27,7 +27,7 @@
DEBUG;TRACE
prompt
4
- ..\..\..\OrchardSecurity.ruleset
+ ..\..\..\OrchardBasicCorrectness.ruleset
pdbonly
diff --git a/src/Orchard.Web/Modules/Orchard.Email/Services/EmailMessagingChannel.cs b/src/Orchard.Web/Modules/Orchard.Email/Services/EmailMessagingChannel.cs
index 2992fcc0d..fe0a6f102 100644
--- a/src/Orchard.Web/Modules/Orchard.Email/Services/EmailMessagingChannel.cs
+++ b/src/Orchard.Web/Modules/Orchard.Email/Services/EmailMessagingChannel.cs
@@ -34,32 +34,34 @@ namespace Orchard.Email.Services {
return;
}
- var smtpClient = new SmtpClient { UseDefaultCredentials = !smtpSettings.RequireCredentials };
- if ( !smtpClient.UseDefaultCredentials && !String.IsNullOrWhiteSpace(smtpSettings.UserName) ) {
- smtpClient.Credentials = new NetworkCredential(smtpSettings.UserName, smtpSettings.Password);
- }
+ using (var smtpClient = new SmtpClient()) {
+ smtpClient.UseDefaultCredentials = !smtpSettings.RequireCredentials;
+ if (!smtpClient.UseDefaultCredentials && !String.IsNullOrWhiteSpace(smtpSettings.UserName)) {
+ smtpClient.Credentials = new NetworkCredential(smtpSettings.UserName, smtpSettings.Password);
+ }
- if(context.MailMessage.To.Count == 0) {
- Logger.Error("Recipient is missing an email address");
- return;
- }
+ if (context.MailMessage.To.Count == 0) {
+ Logger.Error("Recipient is missing an email address");
+ return;
+ }
- if ( smtpSettings.Host != null )
- smtpClient.Host = smtpSettings.Host;
+ if (smtpSettings.Host != null)
+ smtpClient.Host = smtpSettings.Host;
- smtpClient.Port = smtpSettings.Port;
- smtpClient.EnableSsl = smtpSettings.EnableSsl;
- smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;
+ smtpClient.Port = smtpSettings.Port;
+ smtpClient.EnableSsl = smtpSettings.EnableSsl;
+ smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;
- context.MailMessage.From = new MailAddress(smtpSettings.Address);
- context.MailMessage.IsBodyHtml = context.MailMessage.Body != null && context.MailMessage.Body.Contains("<") && context.MailMessage.Body.Contains(">");
+ context.MailMessage.From = new MailAddress(smtpSettings.Address);
+ context.MailMessage.IsBodyHtml = context.MailMessage.Body != null && context.MailMessage.Body.Contains("<") && context.MailMessage.Body.Contains(">");
- try {
- smtpClient.Send(context.MailMessage);
- Logger.Debug("Message sent to {0}: {1}", context.MailMessage.To[0].Address, context.Type);
- }
- catch(Exception e) {
- Logger.Error(e, "An unexpected error while sending a message to {0}: {1}", context.MailMessage.To[0].Address, context.Type);
+ try {
+ smtpClient.Send(context.MailMessage);
+ Logger.Debug("Message sent to {0}: {1}", context.MailMessage.To[0].Address, context.Type);
+ }
+ catch (Exception e) {
+ Logger.Error(e, "An unexpected error while sending a message to {0}: {1}", context.MailMessage.To[0].Address, context.Type);
+ }
}
}
diff --git a/src/Orchard.Web/Modules/Orchard.Experimental/Controllers/CommandsController.cs b/src/Orchard.Web/Modules/Orchard.Experimental/Controllers/CommandsController.cs
index ed8aeed65..2c4c751db 100644
--- a/src/Orchard.Web/Modules/Orchard.Experimental/Controllers/CommandsController.cs
+++ b/src/Orchard.Web/Modules/Orchard.Experimental/Controllers/CommandsController.cs
@@ -27,16 +27,17 @@ namespace Orchard.Experimental.Controllers {
[HttpPost]
public ActionResult Execute(CommandsExecuteViewModel model) {
- var writer = new StringWriter();
- var commandLine = model.CommandLine.Trim();
- CommandParameters parameters = GetCommandParameters(commandLine, writer);
+ using (var writer = new StringWriter()) {
+ var commandLine = model.CommandLine.Trim();
+ CommandParameters parameters = GetCommandParameters(commandLine, writer);
- _commandManager.Execute(parameters);
- model.History = (model.History ?? Enumerable.Empty())
- .Concat(new[] { model.CommandLine })
- .Distinct()
- .ToArray();
- model.Results = writer.ToString();
+ _commandManager.Execute(parameters);
+ model.History = (model.History ?? Enumerable.Empty())
+ .Concat(new[] { model.CommandLine })
+ .Distinct()
+ .ToArray();
+ model.Results = writer.ToString();
+ }
return View(model);
}
diff --git a/src/Orchard.Web/Modules/Orchard.Experimental/Controllers/MetadataController.cs b/src/Orchard.Web/Modules/Orchard.Experimental/Controllers/MetadataController.cs
index b5b9d3b60..e38f489b3 100644
--- a/src/Orchard.Web/Modules/Orchard.Experimental/Controllers/MetadataController.cs
+++ b/src/Orchard.Web/Modules/Orchard.Experimental/Controllers/MetadataController.cs
@@ -23,6 +23,7 @@ namespace Orchard.Experimental.Controllers {
_contentDefinitionReader = contentDefinitionReader;
}
+ [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Reliability", "CA2000:Dispose objects before losing scope", Justification = "StringWriter is disposed by wrapped XmlWriter.")]
public ActionResult Index() {
var model = new MetadataIndexViewModel {
TypeDefinitions = _contentDefinitionManager.ListTypeDefinitions(),
diff --git a/src/Orchard.Web/Modules/Orchard.Experimental/Orchard.Experimental.csproj b/src/Orchard.Web/Modules/Orchard.Experimental/Orchard.Experimental.csproj
index dba532080..816b970f6 100644
--- a/src/Orchard.Web/Modules/Orchard.Experimental/Orchard.Experimental.csproj
+++ b/src/Orchard.Web/Modules/Orchard.Experimental/Orchard.Experimental.csproj
@@ -23,7 +23,7 @@
DEBUG;TRACE
prompt
4
- ..\..\..\OrchardSecurity.ruleset
+ ..\..\..\OrchardBasicCorrectness.ruleset
pdbonly
diff --git a/src/Orchard.Web/Modules/Orchard.Indexing/Orchard.Indexing.csproj b/src/Orchard.Web/Modules/Orchard.Indexing/Orchard.Indexing.csproj
index 675b34ed0..1a2d8fdec 100644
--- a/src/Orchard.Web/Modules/Orchard.Indexing/Orchard.Indexing.csproj
+++ b/src/Orchard.Web/Modules/Orchard.Indexing/Orchard.Indexing.csproj
@@ -22,7 +22,7 @@
DEBUG;TRACE
prompt
4
- ..\..\..\OrchardSecurity.ruleset
+ ..\..\..\OrchardBasicCorrectness.ruleset
pdbonly
diff --git a/src/Orchard.Web/Modules/Orchard.Lists/Orchard.Lists.csproj b/src/Orchard.Web/Modules/Orchard.Lists/Orchard.Lists.csproj
index 959d35012..04ac142c8 100644
--- a/src/Orchard.Web/Modules/Orchard.Lists/Orchard.Lists.csproj
+++ b/src/Orchard.Web/Modules/Orchard.Lists/Orchard.Lists.csproj
@@ -27,7 +27,7 @@
DEBUG;TRACE
prompt
4
- ..\..\..\OrchardSecurity.ruleset
+ ..\..\..\OrchardBasicCorrectness.ruleset
pdbonly
@@ -65,7 +65,7 @@
-
+
diff --git a/src/Orchard.Web/Modules/Orchard.Media/Helpers/MediaHelpers.cs b/src/Orchard.Web/Modules/Orchard.Media/Helpers/MediaHelpers.cs
index 18f3d8dc7..3f0cbf032 100644
--- a/src/Orchard.Web/Modules/Orchard.Media/Helpers/MediaHelpers.cs
+++ b/src/Orchard.Web/Modules/Orchard.Media/Helpers/MediaHelpers.cs
@@ -17,7 +17,7 @@ namespace Orchard.Media.Helpers {
string[] navigationParts = mediaPath.Split(new[] { "\\" }, StringSplitOptions.RemoveEmptyEntries);
string currentPath = String.Empty;
foreach (string navigationPart in navigationParts) {
- currentPath = (currentPath == String.Empty ? navigationPart : currentPath + "\\" + navigationPart);
+ currentPath = (string.IsNullOrEmpty(currentPath) ? navigationPart : currentPath + "\\" + navigationPart);
navigations.Add(new FolderNavigation { FolderName = navigationPart, FolderPath = currentPath });
}
diff --git a/src/Orchard.Web/Modules/Orchard.Media/Orchard.Media.csproj b/src/Orchard.Web/Modules/Orchard.Media/Orchard.Media.csproj
index 145b847aa..7cb1c420b 100644
--- a/src/Orchard.Web/Modules/Orchard.Media/Orchard.Media.csproj
+++ b/src/Orchard.Web/Modules/Orchard.Media/Orchard.Media.csproj
@@ -27,7 +27,7 @@
DEBUG;TRACE
prompt
4
- ..\..\..\OrchardSecurity.ruleset
+ ..\..\..\OrchardBasicCorrectness.ruleset
pdbonly
diff --git a/src/Orchard.Web/Modules/Orchard.Media/Services/MediaService.cs b/src/Orchard.Web/Modules/Orchard.Media/Services/MediaService.cs
index bce9f1e9e..21a37f2ce 100644
--- a/src/Orchard.Web/Modules/Orchard.Media/Services/MediaService.cs
+++ b/src/Orchard.Web/Modules/Orchard.Media/Services/MediaService.cs
@@ -115,8 +115,8 @@ namespace Orchard.Media.Services {
return false;
}
var mediaSettings = CurrentSite.As();
- var allowedExtensions = mediaSettings.UploadAllowedFileTypeWhitelist.ToLowerInvariant().Split(' ');
- var ext = (Path.GetExtension(name) ?? "").TrimStart('.').ToLowerInvariant();
+ var allowedExtensions = mediaSettings.UploadAllowedFileTypeWhitelist.ToUpperInvariant().Split(' ');
+ var ext = (Path.GetExtension(name) ?? "").TrimStart('.').ToUpperInvariant();
if (string.IsNullOrWhiteSpace(ext)) {
return false;
}
diff --git a/src/Orchard.Web/Modules/Orchard.Migrations/Orchard.Migrations.csproj b/src/Orchard.Web/Modules/Orchard.Migrations/Orchard.Migrations.csproj
index 52e2fd72f..17e8802a1 100644
--- a/src/Orchard.Web/Modules/Orchard.Migrations/Orchard.Migrations.csproj
+++ b/src/Orchard.Web/Modules/Orchard.Migrations/Orchard.Migrations.csproj
@@ -23,7 +23,7 @@
DEBUG;TRACE
prompt
4
- ..\..\..\OrchardSecurity.ruleset
+ ..\..\..\OrchardBasicCorrectness.ruleset
pdbonly
diff --git a/src/Orchard.Web/Modules/Orchard.Modules/Orchard.Modules.csproj b/src/Orchard.Web/Modules/Orchard.Modules/Orchard.Modules.csproj
index 13257d762..6a0d1321e 100644
--- a/src/Orchard.Web/Modules/Orchard.Modules/Orchard.Modules.csproj
+++ b/src/Orchard.Web/Modules/Orchard.Modules/Orchard.Modules.csproj
@@ -27,7 +27,7 @@
DEBUG;TRACE
prompt
4
- ..\..\..\OrchardSecurity.ruleset
+ ..\..\..\OrchardBasicCorrectness.ruleset
pdbonly
diff --git a/src/Orchard.Web/Modules/Orchard.MultiTenancy/Orchard.MultiTenancy.csproj b/src/Orchard.Web/Modules/Orchard.MultiTenancy/Orchard.MultiTenancy.csproj
index dd5d16b7e..6e0b6a4de 100644
--- a/src/Orchard.Web/Modules/Orchard.MultiTenancy/Orchard.MultiTenancy.csproj
+++ b/src/Orchard.Web/Modules/Orchard.MultiTenancy/Orchard.MultiTenancy.csproj
@@ -27,7 +27,7 @@
DEBUG;TRACE
prompt
4
- ..\..\..\OrchardSecurity.ruleset
+ ..\..\..\OrchardBasicCorrectness.ruleset
pdbonly
diff --git a/src/Orchard.Web/Modules/Orchard.Packaging/Commands/PackagingCommands.cs b/src/Orchard.Web/Modules/Orchard.Packaging/Commands/PackagingCommands.cs
index edb7f3c05..9a851b48c 100644
--- a/src/Orchard.Web/Modules/Orchard.Packaging/Commands/PackagingCommands.cs
+++ b/src/Orchard.Web/Modules/Orchard.Packaging/Commands/PackagingCommands.cs
@@ -42,7 +42,6 @@ namespace Orchard.Packaging.Commands {
using ( var stream = File.Create(filename) ) {
packageData.PackageStream.CopyTo(stream);
- stream.Close();
}
var fileInfo = new FileInfo(filename);
diff --git a/src/Orchard.Web/Modules/Orchard.Packaging/Orchard.Packaging.csproj b/src/Orchard.Web/Modules/Orchard.Packaging/Orchard.Packaging.csproj
index 08ed0a314..49bec7ff3 100644
--- a/src/Orchard.Web/Modules/Orchard.Packaging/Orchard.Packaging.csproj
+++ b/src/Orchard.Web/Modules/Orchard.Packaging/Orchard.Packaging.csproj
@@ -23,7 +23,7 @@
DEBUG;TRACE
prompt
4
- ..\..\..\OrchardSecurity.ruleset
+ ..\..\..\OrchardBasicCorrectness.ruleset
pdbonly
diff --git a/src/Orchard.Web/Modules/Orchard.Packaging/Services/PackageBuilder.cs b/src/Orchard.Web/Modules/Orchard.Packaging/Services/PackageBuilder.cs
index 669ee22b0..663173cfe 100644
--- a/src/Orchard.Web/Modules/Orchard.Packaging/Services/PackageBuilder.cs
+++ b/src/Orchard.Web/Modules/Orchard.Packaging/Services/PackageBuilder.cs
@@ -204,6 +204,7 @@ namespace Orchard.Packaging.Services {
public string Path { get { return _packagePath; } }
+ [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Reliability", "CA2000:Dispose objects before losing scope", Justification = "Supposed to return an open stream.")]
public Stream GetStream() {
var stream = new MemoryStream();
_webSiteFolder.CopyFileTo(_virtualPath, stream);
diff --git a/src/Orchard.Web/Modules/Orchard.PublishLater/Orchard.PublishLater.csproj b/src/Orchard.Web/Modules/Orchard.PublishLater/Orchard.PublishLater.csproj
index 107360991..6d9bcafd4 100644
--- a/src/Orchard.Web/Modules/Orchard.PublishLater/Orchard.PublishLater.csproj
+++ b/src/Orchard.Web/Modules/Orchard.PublishLater/Orchard.PublishLater.csproj
@@ -23,7 +23,7 @@
DEBUG;TRACE
prompt
4
- ..\..\..\OrchardSecurity.ruleset
+ ..\..\..\OrchardBasicCorrectness.ruleset
pdbonly
diff --git a/src/Orchard.Web/Modules/Orchard.Roles/Orchard.Roles.csproj b/src/Orchard.Web/Modules/Orchard.Roles/Orchard.Roles.csproj
index a2c1f3395..87bbf63df 100644
--- a/src/Orchard.Web/Modules/Orchard.Roles/Orchard.Roles.csproj
+++ b/src/Orchard.Web/Modules/Orchard.Roles/Orchard.Roles.csproj
@@ -27,7 +27,7 @@
DEBUG;TRACE
prompt
4
- ..\..\..\OrchardSecurity.ruleset
+ ..\..\..\OrchardBasicCorrectness.ruleset
pdbonly
diff --git a/src/Orchard.Web/Modules/Orchard.Search/Orchard.Search.csproj b/src/Orchard.Web/Modules/Orchard.Search/Orchard.Search.csproj
index cf850135f..9df3167b3 100644
--- a/src/Orchard.Web/Modules/Orchard.Search/Orchard.Search.csproj
+++ b/src/Orchard.Web/Modules/Orchard.Search/Orchard.Search.csproj
@@ -23,7 +23,7 @@
DEBUG;TRACE
prompt
4
- ..\..\..\OrchardSecurity.ruleset
+ ..\..\..\OrchardBasicCorrectness.ruleset
pdbonly
diff --git a/src/Orchard.Web/Modules/Orchard.Setup/Controllers/SetupController.cs b/src/Orchard.Web/Modules/Orchard.Setup/Controllers/SetupController.cs
index 689becc35..f352960d8 100644
--- a/src/Orchard.Web/Modules/Orchard.Setup/Controllers/SetupController.cs
+++ b/src/Orchard.Web/Modules/Orchard.Setup/Controllers/SetupController.cs
@@ -41,6 +41,7 @@ namespace Orchard.Setup.Controllers {
return View(model);
}
+ [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Reliability", "CA2000:Dispose objects before losing scope", Justification = "StreamReader closed by XmlTextReader.")]
private bool ValidateMachineKey() {
// Get the machineKey section.
MachineKeySection machineKeySection = null;
@@ -59,12 +60,13 @@ namespace Orchard.Setup.Controllers {
|| machineKeySection.DecryptionKey.Contains("AutoGenerate")
|| machineKeySection.ValidationKey.Contains("AutoGenerate")) {
- var rng = new RNGCryptoServiceProvider();
var decryptionData = new byte[32];
var validationData = new byte[64];
-
- rng.GetBytes(decryptionData);
- rng.GetBytes(validationData);
+
+ using (var rng = new RNGCryptoServiceProvider()) {
+ rng.GetBytes(decryptionData);
+ rng.GetBytes(validationData);
+ }
string decryptionKey = BitConverter.ToString(decryptionData).Replace("-", "");
string validationKey = BitConverter.ToString(validationData).Replace("-", "");
diff --git a/src/Orchard.Web/Modules/Orchard.Setup/Orchard.Setup.csproj b/src/Orchard.Web/Modules/Orchard.Setup/Orchard.Setup.csproj
index 75d305fdb..7b81c2256 100644
--- a/src/Orchard.Web/Modules/Orchard.Setup/Orchard.Setup.csproj
+++ b/src/Orchard.Web/Modules/Orchard.Setup/Orchard.Setup.csproj
@@ -27,7 +27,7 @@
DEBUG;TRACE
prompt
4
- ..\..\..\OrchardSecurity.ruleset
+ ..\..\..\OrchardBasicCorrectness.ruleset
pdbonly
diff --git a/src/Orchard.Web/Modules/Orchard.Tags/Orchard.Tags.csproj b/src/Orchard.Web/Modules/Orchard.Tags/Orchard.Tags.csproj
index 82fb2b6e1..a58353f55 100644
--- a/src/Orchard.Web/Modules/Orchard.Tags/Orchard.Tags.csproj
+++ b/src/Orchard.Web/Modules/Orchard.Tags/Orchard.Tags.csproj
@@ -27,7 +27,7 @@
DEBUG;TRACE
prompt
4
- ..\..\..\OrchardSecurity.ruleset
+ ..\..\..\OrchardBasicCorrectness.ruleset
pdbonly
diff --git a/src/Orchard.Web/Modules/Orchard.Themes/Orchard.Themes.csproj b/src/Orchard.Web/Modules/Orchard.Themes/Orchard.Themes.csproj
index 843d85ad4..5f08066e4 100644
--- a/src/Orchard.Web/Modules/Orchard.Themes/Orchard.Themes.csproj
+++ b/src/Orchard.Web/Modules/Orchard.Themes/Orchard.Themes.csproj
@@ -27,7 +27,7 @@
DEBUG;TRACE
prompt
4
- ..\..\..\OrchardSecurity.ruleset
+ ..\..\..\OrchardBasicCorrectness.ruleset
pdbonly
diff --git a/src/Orchard.Web/Modules/Orchard.Users/Orchard.Users.csproj b/src/Orchard.Web/Modules/Orchard.Users/Orchard.Users.csproj
index d311d4938..7681df5ef 100644
--- a/src/Orchard.Web/Modules/Orchard.Users/Orchard.Users.csproj
+++ b/src/Orchard.Web/Modules/Orchard.Users/Orchard.Users.csproj
@@ -27,7 +27,7 @@
DEBUG;TRACE
prompt
4
- ..\..\..\OrchardSecurity.ruleset
+ ..\..\..\OrchardBasicCorrectness.ruleset
pdbonly
diff --git a/src/Orchard.Web/Modules/Orchard.Users/Services/MembershipService.cs b/src/Orchard.Web/Modules/Orchard.Users/Services/MembershipService.cs
index bc0e1b8f0..cf4b9cc03 100644
--- a/src/Orchard.Web/Modules/Orchard.Users/Services/MembershipService.cs
+++ b/src/Orchard.Web/Modules/Orchard.Users/Services/MembershipService.cs
@@ -212,15 +212,18 @@ namespace Orchard.Users.Services {
private static void SetPasswordHashed(UserPartRecord partRecord, string password) {
var saltBytes = new byte[0x10];
- var random = new RNGCryptoServiceProvider();
- random.GetBytes(saltBytes);
+ using (var random = new RNGCryptoServiceProvider()) {
+ random.GetBytes(saltBytes);
+ }
var passwordBytes = Encoding.Unicode.GetBytes(password);
var combinedBytes = saltBytes.Concat(passwordBytes).ToArray();
- var hashAlgorithm = HashAlgorithm.Create(partRecord.HashAlgorithm);
- var hashBytes = hashAlgorithm.ComputeHash(combinedBytes);
+ byte[] hashBytes;
+ using (var hashAlgorithm = HashAlgorithm.Create(partRecord.HashAlgorithm)) {
+ hashBytes = hashAlgorithm.ComputeHash(combinedBytes);
+ }
partRecord.PasswordFormat = MembershipPasswordFormat.Hashed;
partRecord.Password = Convert.ToBase64String(hashBytes);
@@ -235,8 +238,10 @@ namespace Orchard.Users.Services {
var combinedBytes = saltBytes.Concat(passwordBytes).ToArray();
- var hashAlgorithm = HashAlgorithm.Create(partRecord.HashAlgorithm);
- var hashBytes = hashAlgorithm.ComputeHash(combinedBytes);
+ byte[] hashBytes;
+ using (var hashAlgorithm = HashAlgorithm.Create(partRecord.HashAlgorithm)) {
+ hashBytes = hashAlgorithm.ComputeHash(combinedBytes);
+ }
return partRecord.Password == Convert.ToBase64String(hashBytes);
}
diff --git a/src/Orchard.Web/Modules/Orchard.Widgets/Orchard.Widgets.csproj b/src/Orchard.Web/Modules/Orchard.Widgets/Orchard.Widgets.csproj
index 91dae6483..557effac2 100644
--- a/src/Orchard.Web/Modules/Orchard.Widgets/Orchard.Widgets.csproj
+++ b/src/Orchard.Web/Modules/Orchard.Widgets/Orchard.Widgets.csproj
@@ -23,7 +23,7 @@
DEBUG;TRACE
prompt
4
- ..\..\..\OrchardSecurity.ruleset
+ ..\..\..\OrchardBasicCorrectness.ruleset
pdbonly
diff --git a/src/Orchard.Web/Modules/Orchard.jQuery/Orchard.jQuery.csproj b/src/Orchard.Web/Modules/Orchard.jQuery/Orchard.jQuery.csproj
index 29fea9b81..c813c21f2 100644
--- a/src/Orchard.Web/Modules/Orchard.jQuery/Orchard.jQuery.csproj
+++ b/src/Orchard.Web/Modules/Orchard.jQuery/Orchard.jQuery.csproj
@@ -27,7 +27,7 @@
DEBUG;TRACE
prompt
4
- ..\..\..\OrchardSecurity.ruleset
+ ..\..\..\OrchardBasicCorrectness.ruleset
pdbonly
diff --git a/src/Orchard.Web/Modules/TinyMce/TinyMce.csproj b/src/Orchard.Web/Modules/TinyMce/TinyMce.csproj
index f23851ecd..92437899b 100644
--- a/src/Orchard.Web/Modules/TinyMce/TinyMce.csproj
+++ b/src/Orchard.Web/Modules/TinyMce/TinyMce.csproj
@@ -27,7 +27,7 @@
DEBUG;TRACE
prompt
4
- ..\..\..\OrchardSecurity.ruleset
+ ..\..\..\OrchardBasicCorrectness.ruleset
pdbonly
diff --git a/src/Orchard.Web/Orchard.Web.csproj b/src/Orchard.Web/Orchard.Web.csproj
index 4b4022624..0e8e11624 100644
--- a/src/Orchard.Web/Orchard.Web.csproj
+++ b/src/Orchard.Web/Orchard.Web.csproj
@@ -27,7 +27,7 @@
DEBUG;TRACE
prompt
4
- ..\OrchardSecurity.ruleset
+ ..\OrchardBasicCorrectness.ruleset
pdbonly
diff --git a/src/Orchard.Web/Themes/Themes.csproj b/src/Orchard.Web/Themes/Themes.csproj
index d41657a26..0ff135f4f 100644
--- a/src/Orchard.Web/Themes/Themes.csproj
+++ b/src/Orchard.Web/Themes/Themes.csproj
@@ -27,7 +27,7 @@
DEBUG;TRACE
prompt
4
- ..\..\OrchardSecurity.ruleset
+ ..\..\OrchardBasicCorrectness.ruleset
pdbonly
diff --git a/src/Orchard/Commands/CommandHostAgent.cs b/src/Orchard/Commands/CommandHostAgent.cs
index 976c040f5..5bde04b1f 100644
--- a/src/Orchard/Commands/CommandHostAgent.cs
+++ b/src/Orchard/Commands/CommandHostAgent.cs
@@ -135,6 +135,7 @@ namespace Orchard.Commands {
}
}
+ [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Reliability", "CA2000:Dispose objects before losing scope")]
private IContainer CreateHostContainer() {
var hostContainer = OrchardStarter.CreateHostContainer(ContainerRegistrations);
diff --git a/src/Orchard/Commands/DefaultOrchardCommandHandler.cs b/src/Orchard/Commands/DefaultOrchardCommandHandler.cs
index 285f8034c..bd323ea95 100644
--- a/src/Orchard/Commands/DefaultOrchardCommandHandler.cs
+++ b/src/Orchard/Commands/DefaultOrchardCommandHandler.cs
@@ -20,6 +20,8 @@ namespace Orchard.Commands {
Invoke(context);
}
+ [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA1806:DoNotIgnoreMethodResults", MessageId = "System.Int32.TryParse(System.String,System.Int32@)")]
+ [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA1806:DoNotIgnoreMethodResults", MessageId = "System.Boolean.TryParse(System.String,System.Boolean@)")]
private void SetSwitchValues(CommandContext context) {
if (context.Switches != null && context.Switches.Any()) {
foreach (var commandSwitch in context.Switches) {
@@ -32,11 +34,13 @@ namespace Orchard.Commands {
}
if (propertyInfo.PropertyType.IsAssignableFrom(typeof(bool))) {
bool boolValue;
+ // todo: might be better to throw here if TryParse returns false instead of silently using 'false', to catch types (e.g. 'ture')
Boolean.TryParse(commandSwitch.Value, out boolValue);
propertyInfo.SetValue(this, boolValue, null);
}
else if (propertyInfo.PropertyType.IsAssignableFrom(typeof(int))) {
int intValue;
+ // todo: might be better to throw here if TryParse returns false instead of silently using 0 value
Int32.TryParse(commandSwitch.Value, out intValue);
propertyInfo.SetValue(this, intValue, null);
}
diff --git a/src/Orchard/Commands/OrchardCommandHostRetryException.cs b/src/Orchard/Commands/OrchardCommandHostRetryException.cs
index 53d697771..c4db6a806 100644
--- a/src/Orchard/Commands/OrchardCommandHostRetryException.cs
+++ b/src/Orchard/Commands/OrchardCommandHostRetryException.cs
@@ -3,6 +3,7 @@ using System.Runtime.Serialization;
using Orchard.Localization;
namespace Orchard.Commands {
+ [Serializable]
public class OrchardCommandHostRetryException : OrchardCoreException {
public OrchardCommandHostRetryException(LocalizedString message)
: base(message) {
diff --git a/src/Orchard/Data/Migration/Schema/SchemaUtils.cs b/src/Orchard/Data/Migration/Schema/SchemaUtils.cs
index 71bd85c36..e25ddd8a1 100644
--- a/src/Orchard/Data/Migration/Schema/SchemaUtils.cs
+++ b/src/Orchard/Data/Migration/Schema/SchemaUtils.cs
@@ -3,6 +3,7 @@ using System.Data;
namespace Orchard.Data.Migration.Schema {
public static class SchemaUtils {
+ [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA1806:DoNotIgnoreMethodResults", MessageId = "System.Enum.TryParse(System.String,System.Boolean,System.Data.DbType@)")]
public static DbType ToDbType(Type type) {
DbType dbType;
switch ( System.Type.GetTypeCode(type) ) {
diff --git a/src/Orchard/Data/SessionConfigurationCache.cs b/src/Orchard/Data/SessionConfigurationCache.cs
index f774a0118..11b744a65 100644
--- a/src/Orchard/Data/SessionConfigurationCache.cs
+++ b/src/Orchard/Data/SessionConfigurationCache.cs
@@ -58,7 +58,6 @@ namespace Orchard.Data {
using (var stream = _appDataFolder.CreateFile(pathName)) {
formatter.Serialize(stream, cache.Hash);
formatter.Serialize(stream, cache.Configuration);
- stream.Close();
}
}
catch (Exception e) {
diff --git a/src/Orchard/Environment/Descriptor/ShellDescriptorCache.cs b/src/Orchard/Environment/Descriptor/ShellDescriptorCache.cs
index 8904049c6..371597b31 100644
--- a/src/Orchard/Environment/Descriptor/ShellDescriptorCache.cs
+++ b/src/Orchard/Environment/Descriptor/ShellDescriptorCache.cs
@@ -45,6 +45,7 @@ namespace Orchard.Environment.Descriptor {
#region Implementation of IShellDescriptorCache
+ [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Reliability", "CA2000:Dispose objects before losing scope", Justification = "StringReader closed by XmlReader.")]
public ShellDescriptor Fetch(string name) {
VerifyCacheFile();
var text = _appDataFolder.ReadFile(DescriptorCacheFileName);
@@ -64,6 +65,7 @@ namespace Orchard.Environment.Descriptor {
return null;
}
+ [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Reliability", "CA2000:Dispose objects before losing scope", Justification = "writer closed by xmlWriter.")]
public void Store(string name, ShellDescriptor descriptor) {
VerifyCacheFile();
var text = _appDataFolder.ReadFile(DescriptorCacheFileName);
@@ -101,6 +103,7 @@ namespace Orchard.Environment.Descriptor {
#endregion
+ [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Reliability", "CA2000:Dispose objects before losing scope")]
private void VerifyCacheFile() {
if (!_appDataFolder.FileExists(DescriptorCacheFileName)) {
var writer = new StringWriter();
diff --git a/src/Orchard/Environment/Extensions/Compilers/DefaultExtensionCompiler.cs b/src/Orchard/Environment/Extensions/Compilers/DefaultExtensionCompiler.cs
index 6f3afcce2..8d68bf19a 100644
--- a/src/Orchard/Environment/Extensions/Compilers/DefaultExtensionCompiler.cs
+++ b/src/Orchard/Environment/Extensions/Compilers/DefaultExtensionCompiler.cs
@@ -81,6 +81,7 @@ namespace Orchard.Environment.Extensions.Compilers {
return unit;
}
+ [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2202:Do not dispose objects multiple times")]
private string GetContents(string virtualPath) {
string contents;
using (var stream = _virtualPathProvider.OpenFile(virtualPath)) {
diff --git a/src/Orchard/FileSystems/AppData/AppDataFolder.cs b/src/Orchard/FileSystems/AppData/AppDataFolder.cs
index 6312196be..6f0e50e09 100644
--- a/src/Orchard/FileSystems/AppData/AppDataFolder.cs
+++ b/src/Orchard/FileSystems/AppData/AppDataFolder.cs
@@ -92,6 +92,7 @@ namespace Orchard.FileSystems.AppData {
return Combine(AppDataPath, path);
}
+ [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2202:Do not dispose objects multiple times")]
public void CreateFile(string path, string content) {
using (var stream = CreateFile(path)) {
using (var tw = new StreamWriter(stream)) {
diff --git a/src/Orchard/FileSystems/WebSite/WebSiteFolder.cs b/src/Orchard/FileSystems/WebSite/WebSiteFolder.cs
index 437438f6b..1ce01de80 100644
--- a/src/Orchard/FileSystems/WebSite/WebSiteFolder.cs
+++ b/src/Orchard/FileSystems/WebSite/WebSiteFolder.cs
@@ -43,6 +43,7 @@ namespace Orchard.FileSystems.WebSite {
return ReadFile(virtualPath, false);
}
+ [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2202:Do not dispose objects multiple times")]
public string ReadFile(string virtualPath, bool actualContent) {
if (!_virtualPathProvider.FileExists(virtualPath)) {
return null;
diff --git a/src/Orchard/Orchard.Framework.csproj b/src/Orchard/Orchard.Framework.csproj
index 0b96fdbd6..c8c95384d 100644
--- a/src/Orchard/Orchard.Framework.csproj
+++ b/src/Orchard/Orchard.Framework.csproj
@@ -41,7 +41,7 @@
DEBUG;TRACE
prompt
4
- ..\OrchardSecurity.ruleset
+ ..\OrchardBasicCorrectness.ruleset
pdbonly
diff --git a/src/Orchard/OrchardCoreException.cs b/src/Orchard/OrchardCoreException.cs
index cf3748c40..e99eb4eea 100644
--- a/src/Orchard/OrchardCoreException.cs
+++ b/src/Orchard/OrchardCoreException.cs
@@ -3,6 +3,7 @@ using System.Runtime.Serialization;
using Orchard.Localization;
namespace Orchard {
+ [Serializable]
public class OrchardCoreException : Exception {
private readonly LocalizedString _localizedMessage;
diff --git a/src/Orchard/OrchardException.cs b/src/Orchard/OrchardException.cs
index 5e41408b4..e9264165b 100644
--- a/src/Orchard/OrchardException.cs
+++ b/src/Orchard/OrchardException.cs
@@ -3,6 +3,7 @@ using System.Runtime.Serialization;
using Orchard.Localization;
namespace Orchard {
+ [Serializable]
public class OrchardException : ApplicationException {
private readonly LocalizedString _localizedMessage;
diff --git a/src/Orchard/Security/OrchardSecurityException.cs b/src/Orchard/Security/OrchardSecurityException.cs
index 908761fff..1e5a25245 100644
--- a/src/Orchard/Security/OrchardSecurityException.cs
+++ b/src/Orchard/Security/OrchardSecurityException.cs
@@ -4,6 +4,7 @@ using Orchard.ContentManagement;
using Orchard.Localization;
namespace Orchard.Security {
+ [Serializable]
public class OrchardSecurityException : OrchardCoreException {
public OrchardSecurityException(LocalizedString message) : base(message) { }
public OrchardSecurityException(LocalizedString message, Exception innerException) : base(message, innerException) { }
diff --git a/src/Orchard/Security/Providers/OrchardRoleProvider.cs b/src/Orchard/Security/Providers/OrchardRoleProvider.cs
index 7ffbfb8e2..56e644540 100644
--- a/src/Orchard/Security/Providers/OrchardRoleProvider.cs
+++ b/src/Orchard/Security/Providers/OrchardRoleProvider.cs
@@ -2,6 +2,7 @@
using System.Web.Security;
namespace Orchard.Security.Providers {
+ [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1065:DoNotRaiseExceptionsInUnexpectedLocations")]
public class OrchardRoleProvider : RoleProvider {
public override bool IsUserInRole(string username, string roleName) {
throw new NotImplementedException();
diff --git a/src/Orchard/UI/FlatPositionComparer.cs b/src/Orchard/UI/FlatPositionComparer.cs
index 2cc478322..b1daf55e1 100644
--- a/src/Orchard/UI/FlatPositionComparer.cs
+++ b/src/Orchard/UI/FlatPositionComparer.cs
@@ -11,10 +11,10 @@ namespace Orchard.UI {
// null == "before; "" == "0"
x = x == null
? "before"
- : x.Trim() == "" ? "0" : x.Trim(':').TrimEnd('.'); // ':' is _sometimes_ used as a partition identifier
+ : x.Trim().Length == 0 ? "0" : x.Trim(':').TrimEnd('.'); // ':' is _sometimes_ used as a partition identifier
y = y == null
? "before"
- : y.Trim() == "" ? "0" : y.Trim(':').TrimEnd('.');
+ : y.Trim().Length == 0 ? "0" : y.Trim(':').TrimEnd('.');
var xParts = x.Split(new[] { '.', ':' });
var yParts = y.Split(new[] { '.', ':' });
diff --git a/src/Orchard/Utility/Position.cs b/src/Orchard/Utility/Position.cs
index d55266e40..ac02f2d61 100644
--- a/src/Orchard/Utility/Position.cs
+++ b/src/Orchard/Utility/Position.cs
@@ -11,7 +11,7 @@ namespace Orchard.Utility {
if (topMenuItem != null) {
var maxMenuItem = topMenuItem.Items.Where(PositionHasMojorNumber).OrderByDescending(mi => mi.Position, new FlatPositionComparer()).FirstOrDefault();
- var positionParts = maxMenuItem.Position.Split(new[] {'.'}, StringSplitOptions.RemoveEmptyEntries).Where(s => s.Trim() != "");
+ var positionParts = maxMenuItem.Position.Split(new[] {'.'}, StringSplitOptions.RemoveEmptyEntries).Where(s => s.Trim().Length > 0);
if (positionParts.Count() > 0) {
int result;
if (int.TryParse(positionParts.ElementAt(0), out result)) {
diff --git a/src/OrchardBasicCorrectness.ruleset b/src/OrchardBasicCorrectness.ruleset
index 1b2306eeb..1011a984d 100644
--- a/src/OrchardBasicCorrectness.ruleset
+++ b/src/OrchardBasicCorrectness.ruleset
@@ -2,13 +2,10 @@
-
-
-
@@ -22,6 +19,7 @@
+
diff --git a/src/OrchardSecurity.ruleset b/src/OrchardSecurity.ruleset
index 5f72a2381..1eaf08e80 100644
--- a/src/OrchardSecurity.ruleset
+++ b/src/OrchardSecurity.ruleset
@@ -4,7 +4,6 @@
-
diff --git a/src/Tools/MSBuild.Orchard.Tasks.Tests/MSBuild.Orchard.Tasks.Tests.csproj b/src/Tools/MSBuild.Orchard.Tasks.Tests/MSBuild.Orchard.Tasks.Tests.csproj
index 1b5606175..b09c3b452 100644
--- a/src/Tools/MSBuild.Orchard.Tasks.Tests/MSBuild.Orchard.Tasks.Tests.csproj
+++ b/src/Tools/MSBuild.Orchard.Tasks.Tests/MSBuild.Orchard.Tasks.Tests.csproj
@@ -42,7 +42,7 @@
prompt
4
x86
- ..\..\OrchardSecurity.ruleset
+ ..\..\OrchardBasicCorrectness.ruleset
pdbonly
diff --git a/src/Tools/MSBuild.Orchard.Tasks/MSBuild.Orchard.Tasks.csproj b/src/Tools/MSBuild.Orchard.Tasks/MSBuild.Orchard.Tasks.csproj
index f87398657..073f221a7 100644
--- a/src/Tools/MSBuild.Orchard.Tasks/MSBuild.Orchard.Tasks.csproj
+++ b/src/Tools/MSBuild.Orchard.Tasks/MSBuild.Orchard.Tasks.csproj
@@ -41,7 +41,7 @@
DEBUG;TRACE
prompt
4
- ..\..\OrchardSecurity.ruleset
+ ..\..\OrchardBasicCorrectness.ruleset
pdbonly
diff --git a/src/Tools/Orchard.Tests/Orchard.Tests.csproj b/src/Tools/Orchard.Tests/Orchard.Tests.csproj
index 621ecc10d..8ba30e6d2 100644
--- a/src/Tools/Orchard.Tests/Orchard.Tests.csproj
+++ b/src/Tools/Orchard.Tests/Orchard.Tests.csproj
@@ -42,7 +42,7 @@
prompt
4
x86
- ..\..\OrchardSecurity.ruleset
+ ..\..\OrchardBasicCorrectness.ruleset
pdbonly
diff --git a/src/Tools/Orchard/Orchard.csproj b/src/Tools/Orchard/Orchard.csproj
index b24e22f9f..2ab5f66e3 100644
--- a/src/Tools/Orchard/Orchard.csproj
+++ b/src/Tools/Orchard/Orchard.csproj
@@ -43,7 +43,7 @@
4
true
AnyCPU
- ..\..\OrchardSecurity.ruleset
+ ..\..\OrchardBasicCorrectness.ruleset
pdbonly
diff --git a/src/Tools/PackageIndexReferenceImplementation/Controllers/MediaController.cs b/src/Tools/PackageIndexReferenceImplementation/Controllers/MediaController.cs
index 88fa5b064..ccd14661f 100644
--- a/src/Tools/PackageIndexReferenceImplementation/Controllers/MediaController.cs
+++ b/src/Tools/PackageIndexReferenceImplementation/Controllers/MediaController.cs
@@ -20,6 +20,7 @@ namespace PackageIndexReferenceImplementation.Controllers {
return new StreamResult(contentType, _mediaStorage.GetMedia(id + ":" + contentType));
}
+ [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Reliability", "CA2000:Dispose objects before losing scope")]
public ActionResult PreviewTheme(string id, string contentType) {
var stream = _mediaStorage.GetMedia(id + ":" + contentType);
var package = Package.Open(stream, FileMode.Open, FileAccess.Read);
diff --git a/src/Tools/PackageIndexReferenceImplementation/PackageIndexReferenceImplementation.csproj b/src/Tools/PackageIndexReferenceImplementation/PackageIndexReferenceImplementation.csproj
index 6749f8bb0..53dbd9f33 100644
--- a/src/Tools/PackageIndexReferenceImplementation/PackageIndexReferenceImplementation.csproj
+++ b/src/Tools/PackageIndexReferenceImplementation/PackageIndexReferenceImplementation.csproj
@@ -23,7 +23,7 @@
DEBUG;TRACE
prompt
4
- ..\..\OrchardSecurity.ruleset
+ ..\..\OrchardBasicCorrectness.ruleset
pdbonly