view Agendas/trunk/src/Agendas.Web/EditorDefaultExtensions.cs @ 155:23aaf98b8377

Generalizando editores en EditorDefault basando los textos en recursos
author Nelo@Guinea.neluz.int
date Wed, 03 Aug 2011 09:38:23 -0300
parents
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;
        }
    }
}