Fixing exception when there are no items in the main menu

--HG--
branch : 1.x
This commit is contained in:
Sebastien Ros
2012-01-25 11:44:53 -08:00
parent f484766e6e
commit 25d53d4ca8

View File

@@ -10,15 +10,19 @@ namespace Orchard.Utility {
public static string GetNext(IEnumerable<MenuItem> menuItems) { public static string GetNext(IEnumerable<MenuItem> menuItems) {
var maxMenuItem = menuItems.Where(mi => PositionHasMajorNumber(mi)).OrderByDescending(mi => mi.Position, new FlatPositionComparer()).FirstOrDefault(); var maxMenuItem = menuItems.Where(mi => PositionHasMajorNumber(mi)).OrderByDescending(mi => mi.Position, new FlatPositionComparer()).FirstOrDefault();
var positionParts = maxMenuItem.Position.Split(new[] { '.' }, StringSplitOptions.RemoveEmptyEntries).Where(s => s.Trim().Length > 0);
if (positionParts.Count() > 0) { // are there any menu item ?
int result; if (maxMenuItem != null) {
if (int.TryParse(positionParts.ElementAt(0), out result)) {
return (result + 1).ToString(); var positionParts = maxMenuItem.Position.Split(new[] {'.'}, StringSplitOptions.RemoveEmptyEntries).Where(s => s.Trim().Length > 0).ToList();
if (positionParts.Any()) {
int result;
if (int.TryParse(positionParts.ElementAt(0), out result)) {
return (result + 1).ToString(CultureInfo.InvariantCulture);
}
} }
} }
return "1"; return "1";
} }
@@ -30,7 +34,7 @@ namespace Orchard.Utility {
// first one in this major position number // first one in this major position number
return majorStr; return majorStr;
} }
var positionParts = maxMenuItem.Position.Split(new[] { '.' }, StringSplitOptions.RemoveEmptyEntries).Where(s => s.Trim().Length > 0); var positionParts = maxMenuItem.Position.Split(new[] { '.' }, StringSplitOptions.RemoveEmptyEntries).Where(s => s.Trim().Length > 0).ToList();
if (positionParts.Count() > 1) { if (positionParts.Count() > 1) {
int result; int result;
if (int.TryParse(positionParts.ElementAt(1), out result)) { if (int.TryParse(positionParts.ElementAt(1), out result)) {