ToSic.SexyContent.SxcInstance.TryToGetTemplateBasedOnUrlParams C# (CSharp) Method

TryToGetTemplateBasedOnUrlParams() private method

private TryToGetTemplateBasedOnUrlParams ( ) : Template
return Template
        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;
        }