namespace Infrastructure
{
    //خلق اکستنشن متد و هلپر
    //برای خلق هلپر یک کلاس ایجاد میکنیم پابلیک و استاتیک و در آن توابع پابلیک و استاتیک
    //ویژگی اکشتنشن متد اینست که به کلاسی که سورسشو نداریم یه چیزی اضافه کنیم
    //توجه داشته باشید اگر قصد دارید تکست باکس و یا لیبل بنویسید خروجی را از جنس اچ تی ام ال استرینگ قرار دهیم
    //و بعد که استرینگ را ساختیم از هلپر دات راو را صدا میزنیم که اطلاعات بصورت انکد شده نباشد

    /// <summary>
    /// کلاس اچ تی ام ال هلپر
    /// پابلیک و استاتیک
    /// </summary>
	public static class HtmlHelpers
	{
       
        //#################################################

        /// <summary>
        /// تابع پابلیک و استاتیک
        /// برای اینکه این تابع به کلاسی که دسترسی نداریم جوین شود
        /// باید پارامتر اول را به شکل ذیل بنویسیم
        /// </summary>
        /// <param name="helper"></param>
        /// <param name="name"></param>
        /// <returns></returns>
		public static string DTTextBox(this System.Web.Mvc.HtmlHelper helper, string name)
		{
			string strResult =
				string.Format("<input id=\"{0}\" name=\"{0}\" type=\"text\" value=\"\" />", name);

			return (strResult);
		}

        //#################################################

        /// <summary>
        /// تابع پابلیک و استاتیک
        /// برای اینکه این تابع به کلاسی که دسترسی نداریم جوین شود
        /// باید پارامتر اول را به شکل ذیل بنویسیم
        /// این متد از جنس آی اچ تی ام ال هلپر است که برای تکست باکس و لیبل ها مناسب است
        /// خروجی این متد بصورت راو شده میباشد
        /// </summary>
        /// <param name="helper"></param>
        /// <param name="target"></param>
        /// <param name="text"></param>
        /// <returns></returns>
        public static System.Web.IHtmlString DtxLabel
            (this System.Web.Mvc.HtmlHelper helper, string target, string text)
        {
            string strResult =
                string.Format("<div class='caption'><label for='{0}'>{1}</label></div>", target, text);

            return (helper.Raw(strResult));
        }

        //#################################################

        /// <summary>
        /// تابع پابلیک و استاتیک
        /// برای اینکه این تابع به کلاسی که دسترسی نداریم جوین شود
        /// باید پارامتر اول را به شکل ذیل بنویسیم
        /// </summary>
        /// <param name="helper"></param>
        /// <param name="name"></param>
        /// <param name="caption"></param>
        /// <returns></returns>
		public static string DTButton(this System.Web.Mvc.HtmlHelper helper, string name, string caption)
		{
			string strResult =
				string.Format("<input id=\"{0}\" name=\"{0}\" type=\"submit\" value=\"{1}\" class=\"button\" />", name, caption);

			return (strResult);
		}

        //#################################################

        /// <summary>
        /// تابع پابلیک و استاتیک
        /// برای اینکه این تابع به کلاسی که دسترسی نداریم جوین شود
        /// باید پارامتر اول را به شکل ذیل بنویسیم
        /// </summary>
        /// <param name="helper"></param>
        /// <returns></returns>
		public static string DTReset(this System.Web.Mvc.HtmlHelper helper)
		{
			string strResult =
				string.Format("<input type=\"reset\" value=\"Reset\" class=\"button\" />");

			return (strResult);
		}

        //#################################################

       
	}
}