/// <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);
        }