/// <summary> /// Determine the screen name of a page to track. /// </summary> /// <param name="page">Type of page within the application to track.</param> /// <returns>String for the screen name in analytics.</returns> private static string GetScreenName(Type page) { //var screenNameAttribute = page.GetTypeInfo().GetCustomAttribute(typeof(AnalyticsScreenNameAttribute)) as AnalyticsScreenNameAttribute; object[] attributes = page.GetType().GetCustomAttributes(typeof(AnalyticsScreenNameAttribute), false); AnalyticsScreenNameAttribute screenNameAttribute = null; if (attributes.Length > 0) { screenNameAttribute = attributes[0] as AnalyticsScreenNameAttribute; } if (screenNameAttribute != null) { return(screenNameAttribute.ScreenName); } var screenName = page.Name; if (screenName.EndsWith("Page")) { screenName = screenName.Substring(0, screenName.Length - 4); } return(screenName); }
public void AnalyticsScreenNameAttribute_Constructor_Sets_Correct_Properties() { const string expected = "Some screen name"; var attribute = new AnalyticsScreenNameAttribute(expected); Assert.AreEqual(expected, attribute.ScreenName); }