📂 C# Common

Sample Controller


    using bujeon.Attributor;
    using bujeon.Helper;
    using bujeon.Models;
    using System;
    using System.Collections.Generic;
    using System.IO;
    using System.Linq;
    using System.Web;
    using System.Web.Mvc;

    namespace bujeon.Controllers
    {
        [ExActionFilter]
        [ExAuthorize(Roles = "TCODE")]
        public class TCODEController : BaseController
        {
            public ActionResult Index()
            {
                //-----------------------------------------------
                // Set Screen Title and Program ID
                //-----------------------------------------------
                InitializePage("TCODE");

                ViewBag.FROM = "";

                //-----------------------------------------------
                // Get grid data
                //-----------------------------------------------
                ComGridModel model = new ComGridModel();

                model.LoadProgInfo("TCODE", "GRID_1");
                ViewBag.Grid1_Models = model.GetColModels();
                model.LoadProgInfo("TCODE", "GRID_1_H");
                ViewBag.Grid1_Head_Models = model.GetColModels();

                ViewBag.FACCO = model.GetFacco(false);

                return View("TCODE", new BaseModel());
            }
        }
    }
    

TVP With Report


    DataTable tvpTable1 = new DataTable("TVP_NAME");
    tvpTable1.Columns.Add("ITEM", typeof(string));

    foreach (var item in List)
    {
        DataRow row = tvpTable1.NewRow();
        row["ITEM"] = item.ITEM;
        tvpTable1.Rows.Add(row);
    }
    

Common Search List


    public List SearchList()
    {
        List result;

        using (SqlConnection conn = base.GetDB())
        {
            DynamicParameters parameters = new DynamicParameters();

            //---------------------------------------
            // Setup Params
            //---------------------------------------

            parameters.Add("LTPNM", this.Condition.LTPNM);

            // General Params
            parameters.Add("ERNAM", base.GetUserID());
            parameters.Add("LANG", base.GetUserLang());
            parameters.Add("DATTP", base.GetUserDATTP());

            //---------------------------------------
            // Output Params
            //---------------------------------------
            parameters.Add("RESULT", string.Empty, DbType.String, ParameterDirection.Output, 1);
            parameters.Add("MSG", string.Empty, DbType.String, ParameterDirection.Output, 1000);

            //---------------------------------------
            // Execute procedure
            //---------------------------------------
            result = (List)conn.Query("SP_NAME", param: parameters, commandType: CommandType.StoredProcedure);
            
            //GridReader reader = conn.QueryMultiple("UP_MES072540_SER_13_V2", param: parameters, commandType: CommandType.StoredProcedure);

            //Factories = reader.Read().ToList();
            //SearchRecs = reader.Read().ToList();

            //---------------------------------------
            // Set procedure output values
            //---------------------------------------
            base.Result = parameters.Get("RESULT");
            base.Msg = parameters.Get("MSG");
        }
        return result;
    }
    

Common Save List


    public void SaveList()
    {
        using (SqlConnection conn = base.GetDB())
        using (SqlTransaction trans = conn.BeginTransaction())
        {
            try
            {
                DynamicParameters parameters = new DynamicParameters();

                //---------------------------------------
                // Setup Params
                //---------------------------------------
                parameters.Add("U_TABLE", CreateInsertTVP().AsTableValuedParameter());

                // General Params
                parameters.Add("ERNAM", base.GetUserID());
                parameters.Add("LANG", base.GetUserLang());
                parameters.Add("DATTP", base.GetUserDATTP());

                //---------------------------------------
                // Output Params
                //---------------------------------------
                parameters.Add("RESULT", string.Empty, DbType.String, ParameterDirection.Output, 1);
                parameters.Add("MSG", string.Empty, DbType.String, ParameterDirection.Output, 1000);

                //---------------------------------------
                // Execute procedure
                //---------------------------------------
                conn.Execute("UP_MES072330_INS_01", param: parameters, transaction: trans, commandType: CommandType.StoredProcedure);

                //---------------------------------------
                // Set procedure output values
                //---------------------------------------
                base.Result = parameters.Get("RESULT");
                base.Msg = parameters.Get("MSG");

                trans.Commit();
            }
            catch (Exception ex)
            {
                trans.Rollback();

                throw ex;
            }
        }
    }
    

Common TVP


    private List TVP(List  ListItem)
    {
        List result = new List();

        foreach (DOType item in ListItem)
        {
            result.Add(item.ToSqlRecord(base.LoginInfo));
        }

        return result;
    }
    

Common New Record


    public static DOType ForNewRec()
    {
        return new DOType()
        {
            FIELD = ""
        };
    }
    

Common To SQL Record


    public SqlDataRecord ToSqlRecord(MES000000Model.DOLoginInfo loginInfo)
    {
        SqlDataRecord record = new SqlDataRecord(MetaTVP.TvpMeta_NAME);

        record.SetSqlString(0, string.IsNullOrEmpty(this.FIELD) ? null : this.FIELD);

        return record;
    }
    

[JS] Common Export Function


    function onExportFile(type) {
        const gridData = grid.getData();
        const columns = grid.getColumns();

        const filteredColumns = columns.map(c => ({
            ...c,
            header: c.header?.replace(/<\s*br\s*\/?\s*>/gi, ' ')
        }));

        const tempContainer = document.createElement('div');
        document.body.appendChild(tempContainer);


        const tempGrid = new tui.Grid({
            el: tempContainer,
            data: gridData,
            columns: filteredColumns,
        });
        tempGrid.export(type, {
            fileName: '@ViewBag.ProgID',
        });
        tempGrid.destroy();
    }
    

[JS] Common Download Template Function


    function onDownloadTemplate() {
        var param = {
            Condition: {
                EMHNO: V_EMHNO
            }
        };

        down_submit('@Url.Action("ExportFormat", "MES072641")', 'POST', param);
    }