view Agendas/trunk/src/Agendas.Web/EditorDefaultExtensions.cs @ 279:1e889a2e45c5

#125: ABM de patrocinadores.
author juanjose.montesdeocaarbos
date Thu, 22 Dec 2011 10:04:08 -0300
parents 23aaf98b8377
children
line wrap: on
line source

using System.Web;
using System.Web.Mvc;

namespace AltNetHispano.Agendas.Web
{
    public static class EditorDefaultExtensions
    {
        public static HtmlString GetTitleForModel<T>(this HtmlHelper<T> helper)
        {
            return new HtmlString(SearchResource(helper.ViewData.Model.GetType().Name + "Title"));
        }

        public static HtmlString GetDescriptionForModel<T>(this HtmlHelper<T> helper)
        {
            return new HtmlString(SearchResource(helper.ViewData.Model.GetType().Name + "Description"));
        }

        public static HtmlString GetLegendForModel<T>(this HtmlHelper<T> helper)
        {
            return new HtmlString(SearchResource(helper.ViewData.Model.GetType().Name + "Legend"));
        }

        private static string SearchResource(string resourceName)
        {
            string displayName = null;
            var resourceType = typeof(Resources.Properties.LayoutResources);
            var prop = resourceType.GetProperty(resourceName);
            if (prop != null)
            {
                var value = prop.GetValue(resourceType, null);
                displayName = value != null ? value.ToString() : resourceName;
            }
            return displayName ?? string.Empty;
        }
    }
}