private Template TryToGetTemplateBasedOnUrlParams()
{
if (Parameters == null) return null;
// new 2016-05-01
var urlParameterDict = Parameters.ToDictionary(pair => pair.Key?.ToLower() ?? "", pair =>
$"{pair.Key}/{pair.Value}".ToLower());
// old
//var urlParameterDict = Parameters.AllKeys.ToDictionary(key => key?.ToLower() ?? "", key =>
// $"{key}/{Parameters[key]}".ToLower());
foreach (var template in App.TemplateManager.GetAllTemplates().Where(t => !string.IsNullOrEmpty(t.ViewNameInUrl)))
{
var desiredFullViewName = template.ViewNameInUrl.ToLower();
if (desiredFullViewName.EndsWith("/.*")) // match details/.* --> e.g. details/12
{
var keyName = desiredFullViewName.Substring(0, desiredFullViewName.Length - 3);
if (urlParameterDict.ContainsKey(keyName))
return template;
}
else if (urlParameterDict.ContainsValue(desiredFullViewName)) // match view/details
return template;
}
return null;
}