DB Helper

Klasik Ado.Net kullanımını daha basit bir hale getiren metotları (transaction destekli) barındıran kütüphane projesi.

  • ExecuteScalar
  • ExecuteNonQuery
  • ExecuteReader
  • FillTable

Örnek kullanım;

Github bağlantısı.

Bootsrap Panel Helper

Kullanım şekli;

@using (Html.Panel("Genel", type: PanelType.success))
{
    @Html.Editor(model => Model.Error)
    @Html.Editor(model => Model.SaltKey)
}

Panel in tipleri için enum;

public enum PanelType
{
    @default,
    success,
    info,
    danger
}

Panel i containerkap gibi kullanabilmek için ViewContext ve kapanış etiketleritag için de IDisposable dan faydalanıyoruz.

public class PanelFieldSet : IDisposable
{
    bool _disposed;
    readonly ViewContext _viewContext;
    readonly TextWriter _writer;

    public PanelFieldSet(ViewContext viewContext)
    {
        if (viewContext == null)
            throw new ArgumentNullException("viewContext");
        _viewContext = viewContext;
        _writer = viewContext.Writer;
    }

    public void Dispose()
    {
        Dispose(true);
        GC.SuppressFinalize(this);
    }

    protected virtual void Dispose(bool disposing)
    {
        if (!_disposed)
        {
            _disposed = true;
            _writer.Write("\t\t</div>\r\n\t</div>\r\n");
        }
    }

    public void EndDiv()
    {
        Dispose(true);
    }
}

Son olarak Html Helper a yatalık yapacak ControlHelper sınıfıclass;

public static class ControlHelper
{
    public static PanelFieldSet Panel(this HtmlHelper htmlHelper, string title, PanelType type = PanelType.@default, bool display = true, int bodyHeight = 0)
    {
        StringBuilder sb = new StringBuilder();
        sb.AppendFormat("<div class=\"panel panel-{0}\" class='{1}'>", Enum.GetName(typeof(PanelType), type), display ? "show" : "hide");
        sb.AppendFormat("<div class=\"panel-heading\">{0}</div>", title);
        sb.AppendFormat("<div class=\"panel-body\" {0}>", bodyHeight == 0 ? "" : string.Format("style='height:{0}px'", bodyHeight));
        htmlHelper.ViewContext.Writer.WriteLine(sb.ToString());
        return new PanelFieldSet(htmlHelper.ViewContext);
    }
}