private bool IsMultiLayoutsChanged() {
var previous = MultiLayouts != null;
LayoutsInformation information;
try {
information = GetLayouts();
} catch (Exception) {
return previous;
}
if (information == null) {
return MultiLayouts != null;
}
if (MultiLayouts == null) {
return true;
}
return information.TotalLayouts != MultiLayouts.Count ||
!string.Equals(information.MainLayout, _layoutLocation, StringComparison.OrdinalIgnoreCase) ||
information.AdditionalLayouts.Any((x, i) => !string.Equals(x, MultiLayouts[i + 1].Location, StringComparison.OrdinalIgnoreCase));
}