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))
);
//we set the default pattern index from the deprecated setting
foreach (ContentTypeDefinition contentTypeDefinition in ContentDefinitionManager.ListTypeDefinitions()) {
foreach (ContentTypePartDefinition contentTypePartDefinition in contentTypeDefinition.Parts.Where(x => x.PartDefinition.Name == "AutoroutePart")) {
var settings = contentTypePartDefinition.Settings.GetModel<AutorouteSettings>();
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));
}

View File

@@ -141,7 +141,7 @@ namespace Orchard.Autoroute.Services {
// return a default pattern if set
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.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));

View File

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