Optimization to support null values on culture instead of needing to set it to an empty string --> cleaner

This commit is contained in:
Skrypt
2015-06-12 01:54:42 -04:00
parent 8beec81217
commit 6e3d00b2d9
3 changed files with 13 additions and 8 deletions

View File

@@ -53,11 +53,12 @@ namespace Orchard.Autoroute {
.AddColumn<bool>("UseCulturePattern", c => c.WithDefault(false)) .AddColumn<bool>("UseCulturePattern", c => c.WithDefault(false))
); );
//we set the default pattern index from the deprecated setting
foreach (ContentTypeDefinition contentTypeDefinition in ContentDefinitionManager.ListTypeDefinitions()) { foreach (ContentTypeDefinition contentTypeDefinition in ContentDefinitionManager.ListTypeDefinitions()) {
foreach (ContentTypePartDefinition contentTypePartDefinition in contentTypeDefinition.Parts.Where(x => x.PartDefinition.Name == "AutoroutePart")) { foreach (ContentTypePartDefinition contentTypePartDefinition in contentTypeDefinition.Parts.Where(x => x.PartDefinition.Name == "AutoroutePart")) {
var settings = contentTypePartDefinition.Settings.GetModel<AutorouteSettings>(); var settings = contentTypePartDefinition.Settings.GetModel<AutorouteSettings>();
string patternIndex = contentTypePartDefinition.Settings["AutorouteSettings.DefaultPatternIndex"]; string patternIndex = contentTypePartDefinition.Settings["AutorouteSettings.DefaultPatternIndex"];
settings.DefaultPatterns = new List<DefaultPattern> { new DefaultPattern { PatternIndex = patternIndex, Culture = "" } }; settings.DefaultPatterns = new List<DefaultPattern> { new DefaultPattern { PatternIndex = patternIndex } };
ContentDefinitionManager.AlterTypeDefinition(contentTypeDefinition.Name, builder => builder.WithPart("AutoroutePart", settings.Build)); ContentDefinitionManager.AlterTypeDefinition(contentTypeDefinition.Name, builder => builder.WithPart("AutoroutePart", settings.Build));
} }

View File

@@ -141,7 +141,7 @@ namespace Orchard.Autoroute.Services {
// return a default pattern if set // return a default pattern if set
var patternCultureSearch = settings.Patterns.Any(x => x.Culture == culture) ? culture : null; var patternCultureSearch = settings.Patterns.Any(x => x.Culture == culture) ? culture : null;
var defaultPatternCultureSearch = settings.DefaultPatterns.Any(x => x.Culture == culture) ? culture : ""; var defaultPatternCultureSearch = settings.DefaultPatterns.Any(x => x.Culture == culture) ? culture : null;
if (settings.Patterns.Any()) { if (settings.Patterns.Any()) {
if (settings.Patterns.Where(x => x.Culture == patternCultureSearch).ElementAt(Convert.ToInt32(settings.DefaultPatterns.Where(x => x.Culture == defaultPatternCultureSearch).FirstOrDefault().PatternIndex)) != null) { if (settings.Patterns.Where(x => x.Culture == patternCultureSearch).ElementAt(Convert.ToInt32(settings.DefaultPatterns.Where(x => x.Culture == defaultPatternCultureSearch).FirstOrDefault().PatternIndex)) != null) {
return settings.Patterns.Where(x => x.Culture == patternCultureSearch).ElementAt(Convert.ToInt32(settings.DefaultPatterns.Where(x => x.Culture == defaultPatternCultureSearch).FirstOrDefault().PatternIndex)); return settings.Patterns.Where(x => x.Culture == patternCultureSearch).ElementAt(Convert.ToInt32(settings.DefaultPatterns.Where(x => x.Culture == defaultPatternCultureSearch).FirstOrDefault().PatternIndex));

View File

@@ -65,9 +65,11 @@ namespace Orchard.Autoroute.Settings {
//We split the values from the radio button returned values //We split the values from the radio button returned values
int i = 0; int i = 0;
foreach (DefaultPattern defaultPattern in _defaultPatterns) { foreach (DefaultPattern defaultPattern in _defaultPatterns) {
if (defaultPattern.Culture.Split('|').Count() > 1) { if (defaultPattern.Culture != null) {
_defaultPatterns[i].PatternIndex = defaultPattern.Culture.Split('|').Last(); if (defaultPattern.Culture.Split('|').Count() > 1) {
_defaultPatterns[i].Culture = defaultPattern.Culture.Split('|').First(); _defaultPatterns[i].PatternIndex = defaultPattern.Culture.Split('|').Last();
_defaultPatterns[i].Culture = defaultPattern.Culture.Split('|').First();
}
} }
i++; i++;
} }
@@ -80,9 +82,11 @@ namespace Orchard.Autoroute.Settings {
//We split the values from the radio button returned values //We split the values from the radio button returned values
int i = 0; int i = 0;
foreach (DefaultPattern defaultPattern in _defaultPatterns) { foreach (DefaultPattern defaultPattern in _defaultPatterns) {
if (defaultPattern.Culture.Split('|').Count() > 1) { if (defaultPattern.Culture != null) {
_defaultPatterns[i].PatternIndex = defaultPattern.Culture.Split('|').Last(); if (defaultPattern.Culture.Split('|').Count() > 1) {
_defaultPatterns[i].Culture = defaultPattern.Culture.Split('|').First(); _defaultPatterns[i].PatternIndex = defaultPattern.Culture.Split('|').Last();
_defaultPatterns[i].Culture = defaultPattern.Culture.Split('|').First();
}
} }
i++; i++;
} }