using System;
using System.Linq.Expressions;
using System.Web.Mvc;

namespace CD67.ModeleMVC.MVC
{
    public static class MvcHtmlHelpers
    {
        /// <summary>
        /// Pour utiliser ce Helper :
        /// Ajouter un using en haut de la page cshtml : @using CD67.Jarvis.MVC.Internal
        /// Appeler comme les autres méthodes le nouveau helper : @Html.DescriptionFor(model => model.CHAMPBDD)
        /// </summary>
        /// <typeparam name="TModel"></typeparam>
        /// <typeparam name="TValue"></typeparam>
        /// <param name="self"></param>
        /// <param name="expression"></param>
        /// <returns></returns>
        public static MvcHtmlString DescriptionFor<TModel, TValue>(this HtmlHelper<TModel> self, Expression<Func<TModel, TValue>> expression)
        {
            var metadata = ModelMetadata.FromLambdaExpression(expression, self.ViewData);
            var description = metadata.Description;

            return MvcHtmlString.Create(string.Format(@"<span>{0}</span>", description));
        }
    }
}
