From e869a4f467b22f99bed92059bdf325ac07da62ff Mon Sep 17 00:00:00 2001 From: Dave Reed Date: Fri, 12 Nov 2010 12:47:06 -0800 Subject: [PATCH] Fixing some basic fx cop warnings --HG-- branch : dev --- .../Orchard.Core.Tests.csproj | 2 +- src/Orchard.Profile/Orchard.Profile.csproj | 2 +- src/Orchard.Specs/Orchard.Specs.csproj | 2 +- .../Orchard.Tests.Modules.csproj | 2 +- .../Orchard.Framework.Tests.csproj | 2 +- .../Orchard.Web.Tests.csproj | 2 +- .../Services/DefaultMessageManager.cs | 26 ++++++----- src/Orchard.Web/Core/Orchard.Core.csproj | 2 +- .../Core/Routable/Services/RoutableService.cs | 1 - src/Orchard.Web/Modules/Lucene/Lucene.csproj | 2 +- .../Orchard.ArchiveLater.csproj | 2 +- .../Orchard.Blogs/Orchard.Blogs.csproj | 2 +- .../Commands/CodeGenerationCommands.cs | 25 ++++++----- .../Orchard.CodeGeneration.csproj | 2 +- .../Orchard.Comments/Orchard.Comments.csproj | 2 +- .../Orchard.ContentTypes.csproj | 2 +- .../Orchard.Email/Orchard.Email.csproj | 2 +- .../Services/EmailMessagingChannel.cs | 44 ++++++++++--------- .../Controllers/CommandsController.cs | 19 ++++---- .../Controllers/MetadataController.cs | 1 + .../Orchard.Experimental.csproj | 2 +- .../Orchard.Indexing/Orchard.Indexing.csproj | 2 +- .../Orchard.Lists/Orchard.Lists.csproj | 4 +- .../Orchard.Media/Helpers/MediaHelpers.cs | 2 +- .../Orchard.Media/Orchard.Media.csproj | 2 +- .../Orchard.Media/Services/MediaService.cs | 4 +- .../Orchard.Migrations.csproj | 2 +- .../Orchard.Modules/Orchard.Modules.csproj | 2 +- .../Orchard.MultiTenancy.csproj | 2 +- .../Commands/PackagingCommands.cs | 1 - .../Orchard.Packaging.csproj | 2 +- .../Services/PackageBuilder.cs | 1 + .../Orchard.PublishLater.csproj | 2 +- .../Orchard.Roles/Orchard.Roles.csproj | 2 +- .../Orchard.Search/Orchard.Search.csproj | 2 +- .../Controllers/SetupController.cs | 10 +++-- .../Orchard.Setup/Orchard.Setup.csproj | 2 +- .../Modules/Orchard.Tags/Orchard.Tags.csproj | 2 +- .../Orchard.Themes/Orchard.Themes.csproj | 2 +- .../Orchard.Users/Orchard.Users.csproj | 2 +- .../Services/MembershipService.cs | 17 ++++--- .../Orchard.Widgets/Orchard.Widgets.csproj | 2 +- .../Orchard.jQuery/Orchard.jQuery.csproj | 2 +- .../Modules/TinyMce/TinyMce.csproj | 2 +- src/Orchard.Web/Orchard.Web.csproj | 2 +- src/Orchard.Web/Themes/Themes.csproj | 2 +- src/Orchard/Commands/CommandHostAgent.cs | 1 + .../Commands/DefaultOrchardCommandHandler.cs | 4 ++ .../OrchardCommandHostRetryException.cs | 1 + .../Data/Migration/Schema/SchemaUtils.cs | 1 + src/Orchard/Data/SessionConfigurationCache.cs | 1 - .../Descriptor/ShellDescriptorCache.cs | 3 ++ .../Compilers/DefaultExtensionCompiler.cs | 1 + .../FileSystems/AppData/AppDataFolder.cs | 1 + .../FileSystems/WebSite/WebSiteFolder.cs | 1 + src/Orchard/Orchard.Framework.csproj | 2 +- src/Orchard/OrchardCoreException.cs | 1 + src/Orchard/OrchardException.cs | 1 + .../Security/OrchardSecurityException.cs | 1 + .../Security/Providers/OrchardRoleProvider.cs | 1 + src/Orchard/UI/FlatPositionComparer.cs | 4 +- src/Orchard/Utility/Position.cs | 2 +- src/OrchardBasicCorrectness.ruleset | 4 +- src/OrchardSecurity.ruleset | 1 - .../MSBuild.Orchard.Tasks.Tests.csproj | 2 +- .../MSBuild.Orchard.Tasks.csproj | 2 +- src/Tools/Orchard.Tests/Orchard.Tests.csproj | 2 +- src/Tools/Orchard/Orchard.csproj | 2 +- .../Controllers/MediaController.cs | 1 + ...PackageIndexReferenceImplementation.csproj | 2 +- 70 files changed, 147 insertions(+), 116 deletions(-) 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