Building a CRUD Application with Ag-Grid

To Create Crud operation In Ag-Grid using C# MVC here Is a Download Link Click here..

Bundle Config


bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
                         "~/Scripts/jquery-1.12.4.js",
                        "~/Scripts/jquery-ui-1.12.1.js",
                        "~/Scripts/bootstrap.js",
                         "~/Scripts/jquery.validate*",
                        "~/Scripts/jquery.validate.unobtrusive.js",
                        "~/Scripts/sweet-alert.min.js"
                        ));


bundles.Add(new StyleBundle("~/Content/css").Include(
                       "~/Content/bootstrap.css",
                      "~/Content/themes/base/jquery-ui.css",
                       "~/Content/sweet-alert.css",

                      "~/Content/site.css"));


Web.config 

  <add name="con1" connectionString="Data Source=SA-PC;Initial Catalog=Test;Integrated Security=SSPI" providerName="System.Data.SqlClient" />



Index.CShtml


<style>
 
.ag-layout-normal .ag-root-wrapper-body {
        height: 100% !important;
    }

    .ag-layout-normal .ag-body {
        height: 100% !important;
    }

</style>


<div class="container-fluid">
    <div class="row">

        <h4>Demo</h4>
        <hr />

        <div>
            <button type="button" class="btn rec_add_btn" id="addnew" onclick="AddEntry()"><i class="glyphicon glyphicon-plus"></i> Add Entry</button>
        </div>

        <div class="row  divAddEdit hide">
            <div id="divAddEdit" class="col-md-12">
                @{Html.RenderAction("AddEdit", "Home");}
            </div>
        </div>
        <div class="row">
            <div id="divDetail" class="col-md-12">
                @*@{Html.RenderAction("Details", "Home");}*@
                <div class="clearfix"></div>
                <div class="table_div tablePartHeight pos_rel z_index0" id="list">
                    <div class="col-xs-12 height100 no-padding">
                        <div id="myGrid" class="ag-theme-fresh agMainGridWithFooter noFooter"></div>
                    </div>
                  
                </div>
            </div>
        </div>
    </div>
</div>


// Code For AgGrid Bind here

<script>
    var columnDefs = [];
    var gridOptions = {};
    var dataFooter = {
        RN: 0,
        Action: ''
    };
    var RegisterList = [];
    columnDefs = [
                    { headerName: 'Sr.', field: 'RN', width: 60, headerClass: 'text-center' },
                    { headerName: 'Profile', field: 'ProfileImage', width: 150, headerClass: 'text-center', cellRenderer: 'RendererProfileImage' },
                    { headerName: 'Name', field: 'Name', width: 150, headerClass: 'text-center' },
                    { headerName: 'Email', field: 'Email', width: 150, headerClass: 'text-center' },
                    { headerName: 'Department', field: 'DepartmentName', width: 150, headerClass: 'text-center' },
                    { headerName: 'Language', field: 'LanguagesName', width: 150, headerClass: 'text-center' },
                    { headerName: 'Gender', field: 'Gender', width: 150, headerClass: 'text-center' },
                    { headerName: 'MobileNo', field: 'MobileNumber', width: 150, headerClass: 'text-center' },
                    { headerName: 'DateOfBirth', field: 'DateOfBirth', width: 150, headerClass: 'text-center' },
                    { headerName: 'Salary', field: 'Salary', width: 150, headerClass: 'text-right' },
                    { headerName: 'Action', field: 'Action', pinned: 'right', width: 150, headerClass: 'text-center', cellRenderer: 'RendererAction' },
    ]

    gridOptions = {
        columnDefs: columnDefs,
        enableFilter: true,
        enableRangeSelection: true,
        enableSorting: true,
        enableColResize: true,
        components: {
            RendererProfileImage: function (params) {
                var str = "";
                if (params.data.ProfileImage != undefined && params.data.ProfileImage != '') {
                    str = '<img src="/Profile/Images/' + params.data.ProfileImage + '"   width="50px" height="50px"/>';
                }

                return '<div class="Images"><center>' + str + '</center></div> ';
            },
            RendererAction: function (params) {
                var str = "";

                if (params.data.Name != undefined && params.data.Name != '') {
                    str = '<a onClick="EditEntry(' + params.data.RegistrationID + ',' + params.rowIndex + ',' + params.data.RN + ')" ><i class="btn btn-xs rec_edit_btn glyphicon glyphicon-pencil"></i></a> |';
                    str += '<i class="btn btn-xs rec_delete_btn glyphicon glyphicon-remove" onClick ="DeleteEntry(' + params.data.RegistrationID + ',' + params.rowIndex + ')" ></i>';

                }

                return '<div class="action_btn"><center>' + str + '</center></div> ';
            }
        }
    };
    setParameterRequest();

    document.addEventListener('DOMContentLoaded', function () {
        var gridDiv = document.querySelector('#myGrid');
        new agGrid.Grid(gridDiv, gridOptions);
    });
    function AddEntry() {
        $(".divAddEdit").removeClass("hide");
        $("#addnew").addClass("hide");
    }
    function setParameterRequest() {
        var ApiRequest = {
            PageNumber: 1,
            PageSize: 5000
        }
        GridData(ApiRequest);
    }
    function GridData(ApiRequest) {
        //  $("#grid-loading").show();
        $.ajax({
            url: '/Home/EmpList',
            type: 'POST',
            dataType: 'json',
            data: ApiRequest,
            success: function (Data) {
                //debugger
                GridRefresh();
                dataFooter.RN = "#" + (Data.Data.List.length);
                var list = []
                list.push(dataFooter);
                //  gridOptions.api.setPinnedBottomRowData(list);
                gridOptions.api.setRowData(Data.Data.List);
                //var tableHeaderHeight = $('.ag-header').height();
                //var tableBodyHeight = $('.ag-body.ag-row-animation').css('height', 'calc(100% - ' + tableHeaderHeight + 'px)');
                //$(".ag-body-viewport").addClass("scrollbarDefaultColor thik display_inlineBlock width_100");
                //$("#grid-loading").hide();
            }
        })
    }
    function GridRefresh() {
        if (gridOptions.api.isQuickFilterPresent()) {
            gridOptions.api.setQuickFilter('');
        }
        gridOptions.api.setFilterModel(null);
        gridOptions.api.setSortModel(null);
        gridOptions.columnApi.setRowGroupColumns([]);
    }

    function OnSuccess(d) {
        if (d == "Success") {
            clear();
            BindGrid();
        }
        else if (d = "Duplication") {
            swal('This Entry Is Already Inserted.')
        }
        else {
            SaveErrorSweetAltMessage();
        }
    }

    function BindGrid() {

        $.ajax({
            url: '/Home/Details',
            type: 'POST',
            dataType: 'html',
            data: '',
            success: function (Data) {
                $("#divDetail").html(Data);
            }
        })
    }

    function DeleteEntry(RegisterID, i) {
        swal({
            title: 'Are you Sure, You want to delete it?',
            type: 'warning',
            showCancelButton: true,
            confirmButtonColor: '#3085d6',
            cancelButtonColor: '#d33',
            confirmButtonText: 'Yes, delete it!'
        }).then((result) => {
            $.post('/Home/Delete', { id: RegisterID }, function (d) {
                if (d == "Success") {
                    setParameterRequest();
                    swal('Deleted!', 'Your record has been deleted.', 'success');
                }
                else {
                    swal('', 'Delete again.', 'warning');
                }
            });

        });
    }

    function EditEntry(RegisterID, i, RN) {
        $(".divAddEdit").removeClass("hide");
        $("#addnew").addClass("hide");
        var editRow = gridOptions.api.getDisplayedRowAtIndex(i).data;
        $.post('/Home/GetEditEmpDetails', { id: RegisterID }, function (d) {
            if (d.Data.Result == "OK") {            
                $('#RegistrationID').val(d.Data.List[0].RegistrationID);
                $('#ddlSalutation').val(d.Data.List[0].Salutation);
                $('#txtFirstName').val(d.Data.List[0].FirstName);
                $('#txtLastName').val(d.Data.List[0].LastName);
                $('#txtEmail').val(d.Data.List[0].Email);
                $('#txtMobileNumber').val(d.Data.List[0].MobileNumber);
                $('#ddlDepartmentID').val(d.Data.List[0].DepartmentID);
                $('#ddlGender').val(d.Data.List[0].Gender);
                $('#ddlLanguagesID').val(d.Data.List[0].LanguagesID);
                $('#txtSalary').val(d.Data.List[0].Salary);
                $('#txtDateOfBirth').val(d.Data.List[0].DateOfBirth);
                $('#hndProfileImage').val(d.Data.List[0].ProfileImage);
            }
        });
        //$('#LabourRate').val(editRow.LabourRate);
       
        //$('#LabourID').val(editRow.LabourID);
    }
    function clear() {
        $('#ddlSalutation').val('');
        $('#txtFirstName').val('');
        $('#txtLastName').val('');
        $('#txtEmail').val('');
        $('#txtMobileNumber').val('');
        $('#ddlDepartmentID').val('');
        $('#ddlGender').val('');
        $('#ddlLanguagesID').val('');
        $('#txtSalary').val('');
        $('#txtDateOfBirth').val('');
        $('#txtAge').val('');
        $('#txtProfileImage').val('');
        makedatecontrol();
    }

    function OnFailure(response) {
        alert("Error occured.");
    }
</script>


_AddEdit.Cshtml

@model TestDemo.Models.Registration
<div class="col-md-12">
    @using (Ajax.BeginForm("Save", "Home", null, new AjaxOptions { HttpMethod = "POST", OnComplete = "OnSuccess" }, new { id = "frmroughpurchse", enctype = "multipart/form-data" }))
    {
        @Html.ValidationSummary(true)

        @Html.AntiForgeryToken()


        <div class="col-md-12 form-horizontal">

            @Html.ValidationSummary(true, "", new { @class = "text-danger" })
            @Html.HiddenFor(c => c.RegistrationID, new { id = "RegistrationID" })
            <div class="col-md-3">
                <div class="form-group">
                    <label class="control-label">Salutation</label>
                    <div class="">
                        @Html.DropDownListFor(c => c.Salutation, new List<SelectListItem> { new SelectListItem { Text = "Mr", Value = "Mr" }, new SelectListItem { Text = "Mrs", Value = "Mrs" } }, "--Select Salutation--", new { tabindex = 1, @class = "form-control", @id = "ddlSalutation", @required = "required" })
                        @*@Html.EditorFor(model => model.Salutation, new { htmlAttributes = new { @id = "txtSalutation", @class = "form-control", @tabindex = "1", @required = "required" } })*@
                        @Html.ValidationMessageFor(model => model.Salutation, "", new { @class = "error" })
                    </div>
                </div>
            </div>
            <div class="col-md-3">
                <div class="form-group">
                    @Html.Label("First Name:", htmlAttributes: new { @class = "control-label" })
                    <div class="">
                        @Html.EditorFor(model => model.FirstName, new { htmlAttributes = new { @id = "txtFirstName", @class = "form-control", @tabindex = "2", @required = "required" } })
                        @Html.ValidationMessageFor(model => model.FirstName, "", new { @class = "error" })
                    </div>
                </div>
            </div>
            <div class="col-md-3">
                <div class="form-group">
                    @Html.Label("Last Name:", htmlAttributes: new { @class = "control-label" })
                    <div class="">
                        @Html.EditorFor(model => model.LastName, new { htmlAttributes = new { @id = "txtLastName", @class = "form-control", @tabindex = "3", @required = "required" } })
                        @Html.ValidationMessageFor(model => model.LastName, "", new { @class = "error" })
                    </div>
                </div>
            </div>
            <div class="col-md-3">
                <div class="form-group">
                    @Html.Label("Email:", htmlAttributes: new { @class = "control-label" })
                    <div class="">
                        @Html.EditorFor(model => model.Email, new { htmlAttributes = new { @id = "txtEmail", @class = "form-control", @tabindex = "4", @required = "required" } })
                        @Html.ValidationMessageFor(model => model.Email, "", new { @class = "error" })
                    </div>
                </div>
            </div>
            <div class="col-md-3">
                <div class="form-group">
                    @Html.Label("Mobile Number:", htmlAttributes: new { @class = "control-label" })
                    <div class="">
                        @Html.EditorFor(model => model.MobileNumber, new { htmlAttributes = new { @id = "txtMobileNumber", @class = "form-control", @tabindex = "5", @required = "required" } })
                        @Html.ValidationMessageFor(model => model.MobileNumber, "", new { @class = "error" })
                    </div>
                </div>
            </div>
            <div class="col-md-3">
                <div class="form-group">
                    @Html.Label("Department:", htmlAttributes: new { @class = "control-label" })
                    <div class="">
                        @Html.DropDownListFor(model => model.DepartmentID, ViewBag.Department as SelectList, "--Select Department--", new { tabindex = 6, @id = "ddlDepartmentID", @class = "form-control", @required = "required" })
                        @Html.ValidationMessageFor(model => model.DepartmentID, "", new { @class = "error" })
                    </div>
                </div>
            </div>
            <div class="col-md-3">
                <div class="form-group">
                    @Html.Label("Gender:", htmlAttributes: new { @class = "control-label" })
                    <div class="">
                        @Html.DropDownListFor(model => model.Gender, new List<SelectListItem> { new SelectListItem { Text = "Male", Value = "Male" }, new SelectListItem { Text = "FeMale", Value = "FeMale" } }, "--Select Gender--", new { tabindex = 7, @class = "form-control", @id = "ddlGender", @required = "required" })
                        @Html.ValidationMessageFor(model => model.Gender, "", new { @class = "error" })
                    </div>
                </div>
            </div>
            <div class="col-md-3">
                <div class="form-group">
                    @Html.Label("Languages:", htmlAttributes: new { @class = "control-label" })
                    <div class="">
                        @Html.DropDownListFor(model => model.LanguagesID, ViewBag.Languages as SelectList, "--Select Languages--", new { tabindex = 8, @id = "ddlLanguagesID", @class = "form-control", @required = "required" })
                        @Html.ValidationMessageFor(model => model.LanguagesID, "", new { @class = "error" })
                    </div>
                </div>
            </div>
            <div class="col-md-3">
                <div class="form-group">
                    @Html.Label("Salary:", htmlAttributes: new { @class = "control-label" })
                    <div class="">
                        @Html.EditorFor(model => model.Salary, new { htmlAttributes = new { @id = "txtSalary", @class = "form-control decimalonly", @tabindex = "9", @required = "required" } })
                        @Html.ValidationMessageFor(model => model.Salary, "", new { @class = "error" })
                    </div>
                </div>
            </div>
            <div class="col-md-3">
                <div class="form-group">
                    @Html.Label("Date Of Birth:", htmlAttributes: new { @class = "control-label" })
                    <div class="">
                        @Html.TextBoxFor(model => model.DateOfBirth, "{0:dd/MM/yyyy}", new { tabindex = "10", @class = "form-control datepickerdefaultcls", @id = "txtDateOfBirth", @required = "required", @autocomplete = "off" })
                        @Html.ValidationMessageFor(model => model.DateOfBirth, "", new { @class = "error" })
                    </div>
                </div>
            </div>
            <div class="col-md-3">
                <div class="form-group">
                    @Html.Label("Age:", htmlAttributes: new { @class = "control-label" })
                    <div class="">
                        @Html.EditorFor(model => model.Age, new { htmlAttributes = new { @id = "txtAge", @class = "form-control", @tabindex = "11", @required = "required" } })
                        @Html.ValidationMessageFor(model => model.Age, "", new { @class = "error" })
                    </div>
                </div>
            </div>
            <div class="col-md-3">
                <div class="form-group">
                    <label class="control-label">Profile Img</label>
                    <div class="input_div pos_rel">
                        @Html.TextBoxFor(c => c.ProfileImage, new { @class = "form-control", @id = "txtProfileImage", @type = "file", tabindex = 12 })
                        @Html.HiddenFor(c => c.ProfileImage,new {@id="hndProfileImage" })
                        @*@if (Model.RegistrationID > 0 && (Model.ProfileImage != "" && Model.ProfileImage != null))
                            {
                                <a target="/" href="../../Upload/Invoice/@Model.ProfileImage"> <i class="btn btn-xs btnimgdownload text-primary glyphicon glyphicon-download-alt imgdownload"></i></a>
                            }*@
                    </div>
                </div>
            </div>
            <div class="col-md-3 text-center">

                <div class="form-group">
                    <div>
                        <input type="submit" value="Save" class="btn btn-success" />
                        <button type="button" class="btn enter btn-default" onclick="Closed();">Cancel</button>
                    </div>
                </div>
            </div>
        </div>
    }
</div>

<script>
    $(document).ready(function () {
        makedatecontrol();
        $('#frmroughpurchse').submit(function (event) {
            event.preventDefault();
            if ($(this).valid()) {
                debugger

                var id = $("#RegistrationID").val();
                var validExts = new Array(".jpeg", ".jpg", ".png");
                var formdata = new FormData($(this).get(0));
                var fileUpload = $("#txtProfileImage").get(0);
                var files = fileUpload.files;
                if (files.length > 0) {
                    var fileExt = fileUpload.files[0].name;
                    fileExt = fileExt.substring(fileExt.lastIndexOf('.'));
                    if (validExts.indexOf(fileExt) < 0) {
                        //  $('#savebtnhideshow').show();
                        $('.bottom_btn_bar img.loader_img').css("display", "none");
                        ShowSweetAltMessage("", "Invoice Images Incorrect file, the correct file type is " + validExts.toString() + " types.", "info");
                        return false;
                    }
                }
                //End File Oriented Code

                $.ajax({
                    url: this.action,
                    type: this.method,
                    data: formdata,
                    processData: false,
                    contentType: false,
                    async: false,
                    success: function (d) {
                        if (d > 0) {
                            clear();
                            //BindGrid();
                            setParameterRequest();
                            if (id != null && id > 0) {
                                Closed();
                            }
                        }
                        else if (d == -1) {
                            alert("Duplicate");
                        }
                    },
                    failure: function (response) {

                    },
                    error: function (response) {

                    }
                });
            }
            return false;
        });

    });
    function makedatecontrol() {
        $(".datepickerdefaultcls").datepicker({ changeMonth: !0, changeYear: !0, dateFormat: "dd/mm/yy", yearRange: "1930:2030", autoclose: !0 }).on("changeDate", function (t) {
            debugger;
            getAge(t.value);
        })
    }
    function getAge(dateString) {
        var dates = dateString.split("/");
        var d = new Date();
        var userday = dates[0];
        var usermonth = dates[1];
        var useryear = dates[2];
        var curday = d.getDate();
        var curmonth = d.getMonth() + 1;
        var curyear = d.getFullYear();
        var age = curyear - useryear;
        if ((curmonth < usermonth) || ((curmonth == usermonth) && curday < userday)) {
            age--;
        }
        return age;
    }

    function Closed()
    {
        $(".divAddEdit").addClass("hide");
        $("#addnew").removeClass("hide");
    }
</script>


Registration Model


using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Web;

namespace TestDemo.Models
{
    public class Registration
    {
        string SqlCon = ConfigurationManager.ConnectionStrings["con1"].ToString();
        public int RegistrationID { get; set; } = 0;

        [Required(ErrorMessage = "Please Select Salutation")]
        public string Salutation { get; set; }
        [Required(ErrorMessage = "Please Enter FirstName")]
        public string FirstName { get; set; }
        [Required(ErrorMessage = "Please Enter LastName")]
        public string LastName { get; set; }
        public string Email { get; set; }
        public int MobileNumber { get; set; }
        public Int16 DepartmentID { get; set; }
        public string Gender { get; set; }
        public Int16 LanguagesID { get; set; }
        public int Salary { get; set; }

        [DataType(DataType.Date), DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}", ApplyFormatInEditMode = true)]
        public string DateOfBirth { get; set; }
        public Int16 Age { get; set; }
        public string ProfileImage { get; set; }


        public List<Registration> RList = new List<Registration>();


        public int Save(Registration obj)
        {
            SqlCommand cmd = new SqlCommand();
            cmd.Parameters.AddWithValue("@RegistrationID", obj.RegistrationID);
            cmd.Parameters.AddWithValue("@Salutation", obj.Salutation);
            cmd.Parameters.AddWithValue("@FirstName", obj.FirstName);
            cmd.Parameters.AddWithValue("@LastName", obj.LastName);
            cmd.Parameters.AddWithValue("@Email", obj.Email);
            cmd.Parameters.AddWithValue("@MobileNumber", obj.MobileNumber);
            cmd.Parameters.AddWithValue("@DepartmentID", obj.DepartmentID);
            cmd.Parameters.AddWithValue("@Gender", obj.Gender);
            cmd.Parameters.AddWithValue("@LanguagesID", obj.LanguagesID);
            cmd.Parameters.AddWithValue("@Salary", obj.Salary);
            cmd.Parameters.AddWithValue("@DateOfBirth", obj.DateOfBirth);
            cmd.Parameters.AddWithValue("@Age", obj.Age);
            cmd.Parameters.AddWithValue("@ProfileImage", obj.ProfileImage);


            return AddDataWithCommandObj_Int32("Registration_Detail_Insert_Update", cmd);

        }
        public int DeleteDetail(int id)
        {
            SqlCommand cmd = new SqlCommand();
            cmd.Parameters.AddWithValue("@RegistrationID", id);
            return Common.DeleteRecord("Registration_Detail_Delete", cmd);
        }
        public int AddDataWithCommandObj_Int32(string StoredProcedureName, SqlCommand cmd)
        {
            int ReturnID = 0;
            using (SqlConnection con = new SqlConnection(SqlCon))
            {
                con.Open();
                try
                {
                    cmd.CommandType = CommandType.StoredProcedure;
                    cmd.CommandText = StoredProcedureName;
                    cmd.CommandTimeout = 300;
                    cmd.Connection = con;
                    ReturnID = (int)cmd.ExecuteScalar();
                }
                catch (Exception ex)
                {
                    ReturnID = -1;
                }
                cmd.Dispose();
                con.Close();
            }
            return ReturnID;
        }

        public int DeleteRecord(string storedProcedureName, SqlCommand cmd)
        {
            int returnId = 0;
            using (SqlConnection con = new SqlConnection(SqlCon))
            {
                con.Open();
                try
                {
                    cmd.CommandType = CommandType.StoredProcedure;
                    cmd.CommandText = storedProcedureName;
                    cmd.CommandTimeout = 300;
                    cmd.Connection = con;
                    //cmd.ExecuteNonQuery();
                    returnId = (int)cmd.ExecuteScalar();
                }
                catch (Exception ex)
                {
                    //-1 duplicate
                    //-2 Noram Error
                    //-3 forign Key
                    //if(ex.Message)
                    returnId = -3;
                }
                cmd.Dispose();
                con.Close();

            }
            return returnId;
        }
    }
}


LargeJsonResult.Cs


using System;
using System.Web;
using System.Web.Mvc;
using System.Web.Script.Serialization;

namespace TestDemo.Models
{
    public class LargeJsonResult : JsonResult
    {
        const string JsonRequest_GetNotAllowed = "This request has been blocked because sensitive information could be disclosed to third party web sites when this is used in a GET request. To allow GET requests, set JsonRequestBehavior to AllowGet.";
        public LargeJsonResult()
        {
            MaxJsonLength = 2147483647;
            RecursionLimit = 100;
        }
        public override void ExecuteResult(ControllerContext context)
        {
            if (context == null)
            {
                throw new ArgumentNullException("context");
            }
            if (JsonRequestBehavior == JsonRequestBehavior.DenyGet &&
                string.Equals(context.HttpContext.Request.HttpMethod, "GET", StringComparison.OrdinalIgnoreCase))
            {
                throw new InvalidOperationException(JsonRequest_GetNotAllowed);
            }
            HttpResponseBase response = context.HttpContext.Response;
            if (!string.IsNullOrEmpty(ContentType))
            {
                response.ContentType = ContentType;
            }
            else
            {
                response.ContentType = "application/json";
            }
            if (ContentEncoding != null)
            {
                response.ContentEncoding = ContentEncoding;
            }
            if (Data != null)
            {
                JavaScriptSerializer serializer = new JavaScriptSerializer() { MaxJsonLength = Convert.ToInt32(MaxJsonLength), RecursionLimit = Convert.ToInt32(RecursionLimit) };
                response.Write(serializer.Serialize(Data));


            }
        }
    }
}


Home Controller



using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.IO;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using TestDemo.Models;

namespace TestDemo.Controllers
{
public class HomeController : Controller
    {
        string SqlCon = ConfigurationManager.ConnectionStrings["con1"].ToString();
        public ActionResult Index()
        {
            SqlCommand cmd = new SqlCommand();
            DataSet ds = GetAllList("BindDDL_List", cmd);
            ViewBag.Department = GetAllDDLList(ds.Tables[0]);
            ViewBag.Languages = GetAllDDLList(ds.Tables[1]);

            List<Registration> RegList = new List<Registration>();
            SqlCommand cmd1 = new SqlCommand();
            DataSet Ds = GetAllList("Registration_Detail_List", cmd1);
            if (Ds != null && Ds.Tables[0].Rows.Count > 0)
            {
                ViewBag.RegistrationList = GetAllRecordConvertList(Ds.Tables[0]);
            }
            else
            {
                ViewBag.RegistrationList = null;
            }

            return View();
        }
public static SelectList GetAllDDLList(DataTable dt, int[] selectedval = null)
        {
            if (dt != null)
            {
                List<SelectListItem> list = new List<SelectListItem>();
                foreach (DataRow row in dt.Rows)
                {
                    list.Add(new SelectListItem()
                    {
                        Text = row[1].ToString(),
                        Value = row[0].ToString()
                    });
                }
                if (selectedval != null)
                {
                    return new SelectList(list, "Value", "Text", selectedval);
                }
                else
                {
                    return new SelectList(list, "Value", "Text");
                }
            }
            return null;
        }

  [HttpPost]
        public ActionResult Save(Registration obj)
        {
            HttpFileCollectionBase files = Request.Files;
            if (files.Count > 0)
            {
                for (int i = 0; i < Request.Files.Count; i++)
                {
                    string path = Server.MapPath("~/Profile/Images/");
                    if (!System.IO.Directory.Exists(path))
                    {
                        System.IO.Directory.CreateDirectory(path);
                    }
                    HttpPostedFileBase FImage = files[i];
                    if (FImage != null && FImage.ContentLength > 0)
                    {
                        var ext = Path.GetExtension(FImage.FileName);
                        string FName = DateTime.Now.ToString("dd_MM_yyyy_hh_mm_ss") + ext;
                        FImage.SaveAs(Path.Combine(path, FName));
                        if (files.Keys[i].ToString() == "ProfileImage")
                        {
                            if (obj.ProfileImage != null && obj.ProfileImage != "")
                            {
                                string filePath = path + obj.ProfileImage.ToString();
                                if (System.IO.File.Exists(filePath))
                                {
                                    System.IO.File.Delete(filePath);
                                }
                            }
                            obj.ProfileImage = FName;
                        }
                    }
                }
            }
            Registration rejobj = new Registration();
            int ID = rejobj.Save(obj);
            if (ID > 0)
            {
                return Json(ID, "Success", JsonRequestBehavior.AllowGet);
            }
            else if (ID == -1)
            {
                return Json(ID, "Duplication", JsonRequestBehavior.AllowGet);
            }
            else
            {
                return Json(ID, "Failed", JsonRequestBehavior.AllowGet);
            }
        }

public JsonResult EmpDetails()
        {
           
            return Json("", JsonRequestBehavior.AllowGet);
        }
        public LargeJsonResult EmpList(int PageNumber, int PageSize, string Sorting = "", string search = "")
        {
            SqlCommand cmd = new SqlCommand();
            cmd.Parameters.AddWithValue("@pageno", PageNumber);
            cmd.Parameters.AddWithValue("@pagesize", PageSize);
            cmd.Parameters.AddWithValue("@sortcolumn", Sorting);
            cmd.Parameters.AddWithValue("@filter", search);
            DataSet Ds = GetAllList("Registration_Detail_List", cmd);
            if (Ds.Tables.Count > 0)
            {
                var objlist = GetAllRecordConvertList(Ds.Tables[0]).ToList();
                return new LargeJsonResult { Data = Json(new { Result = "OK", List = objlist, Count = objlist.Count }) };
            }
            else
            {
                return new LargeJsonResult { Data = Json(new { Result = "Error", List = string.Empty, Count = 0 }) };
            }

        }
  public ActionResult Details()
        {
            List<Registration> RegList = new List<Registration>();
            SqlCommand cmd = new SqlCommand();
            DataSet Ds = GetAllList("Registration_Detail_List", cmd);
            if (Ds != null && Ds.Tables[0].Rows.Count > 0)
            {
                ViewBag.RegistrationList = GetAllRecordConvertList(Ds.Tables[0]);
            }
            else
            {
                ViewBag.RegistrationList = null;
            }

            return PartialView("_Detail");
        }

        public static DataSet GetAllList(string StoredProcedureName, SqlCommand cmd)
        {
            DataSet ds = new DataSet();
            try
            {
                using (SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["con1"].ToString()))
                {
                    con.Open();
                    cmd.CommandType = CommandType.StoredProcedure;
                    SqlDataAdapter adp = new SqlDataAdapter();
                    cmd.CommandText = StoredProcedureName;
                    cmd.CommandTimeout = 300;
                    cmd.Connection = con;
                    adp.SelectCommand = cmd;
                    adp.Fill(ds);
                    con.Close();
                }
            }
            catch (Exception ex) { }
            return ds;
        }
public static List<Dictionary<string, object>> GetAllRecordConvertList(DataTable dt)
        {
            List<Dictionary<string, object>> rows = new List<Dictionary<string, object>>();
            Dictionary<string, object> row;
            foreach (DataRow dr in dt.Rows)
            {
                row = new Dictionary<string, object>();
                foreach (DataColumn col in dt.Columns)
                {
                    row.Add(col.ColumnName, dr[col]);
                }
                rows.Add(row);
            }
            return rows;
        }

        [HttpPost]
        public ActionResult GetEditEmpDetails(int id)
        {
            Registration objEmp = new Registration();

            if (id > 0)
            {
                SqlCommand cmd1 = new SqlCommand();
                cmd1.Parameters.AddWithValue("@RegistrationID", id);
                DataSet Ds = GetAllList("Registration_Detail_Get", cmd1);
                if (Ds.Tables.Count > 0)
                {
                    var objlist = GetAllRecordConvertList(Ds.Tables[0]).ToList();
                    return new LargeJsonResult { Data = Json(new { Result = "OK", List = objlist, Count = objlist.Count }) };
                }
                else
                {
                    return new LargeJsonResult { Data = Json(new { Result = "Error", List = string.Empty, Count = 0 }) };
                }

            }
            else
            {
                return new LargeJsonResult { Data = Json(new { Result = "Error", List = string.Empty, Count = 0 }) };
            }

            //   return PartialView("_AddEdit", objEmp);
        }
  [HttpPost]
        public ActionResult GetEmpDetails(int id)
        {
            Registration objEmp = new Registration();

            SqlCommand cmd = new SqlCommand();
            DataSet ds = GetAllList("BindDDL_List", cmd);
            ViewBag.Department = GetAllDDLList(ds.Tables[0]);
            ViewBag.Languages = GetAllDDLList(ds.Tables[1]);
            if (id > 0)
            {
                SqlCommand cmd1 = new SqlCommand();
                cmd1.Parameters.AddWithValue("@RegistrationID", id);
                DataSet Ds = GetAllList("Registration_Detail_Get", cmd1);
                if (Ds != null && Ds.Tables[0].Rows.Count > 0)
                {
                    objEmp.RegistrationID = Convert.ToInt32(Ds.Tables[0].Rows[0]["RegistrationID"].ToString());
                    objEmp.FirstName = Ds.Tables[0].Rows[0]["FirstName"].ToString();
                    objEmp.LastName = Ds.Tables[0].Rows[0]["LastName"].ToString();
                    objEmp.Gender = Ds.Tables[0].Rows[0]["Gender"].ToString();
                    objEmp.LanguagesID = Convert.ToInt16(Ds.Tables[0].Rows[0]["LanguagesID"].ToString());
                    objEmp.Salutation = Ds.Tables[0].Rows[0]["Salutation"].ToString();
                    objEmp.DateOfBirth = Ds.Tables[0].Rows[0]["DateOfBirth"].ToString();
                    objEmp.Age = Convert.ToInt16(Ds.Tables[0].Rows[0]["Age"].ToString());
                    objEmp.Email = Ds.Tables[0].Rows[0]["Email"].ToString();
                    objEmp.MobileNumber = Convert.ToInt32(Ds.Tables[0].Rows[0]["MobileNumber"].ToString());
                    objEmp.DepartmentID = Convert.ToInt16(Ds.Tables[0].Rows[0]["DepartmentID"].ToString());
                    objEmp.Salary = Convert.ToInt32(Ds.Tables[0].Rows[0]["Salary"].ToString());
                    objEmp.Age = Convert.ToInt16(Ds.Tables[0].Rows[0]["Age"].ToString());
                    objEmp.ProfileImage = Ds.Tables[0].Rows[0]["ProfileImage"].ToString();
                }

            }
            return PartialView("_AddEdit", objEmp);
        }

        public ActionResult AddEdit(int id = 0)
        {
            Registration objEmp = new Registration();

            SqlCommand cmd = new SqlCommand();
            DataSet ds = GetAllList("BindDDL_List", cmd);
            ViewBag.Department = GetAllDDLList(ds.Tables[0]);
            ViewBag.Languages = GetAllDDLList(ds.Tables[1]);
            if (id > 0)
            {
                SqlCommand cmd1 = new SqlCommand();
                cmd1.Parameters.AddWithValue("@RegistrationID", id);
                DataSet Ds = GetAllList("Registration_Detail_Get", cmd1);
                if (Ds != null && Ds.Tables[0].Rows.Count > 0)
                {
                    objEmp.DepartmentID = Convert.ToInt16(Ds.Tables[0].Rows[0]["DepartmentID"].ToString());

                }
            }
            return PartialView("_AddEdit", objEmp);


        }
  public ActionResult Delete(int id)
        {
            Registration rejobj = new Registration();
            int RetrunID = rejobj.DeleteDetail(id);
            if (RetrunID > 0)
            {
                return Json("Success", JsonRequestBehavior.AllowGet);
            }
            else if (RetrunID == -3)
            {
                return Json("FailedFK", JsonRequestBehavior.AllowGet);
            }
            else
            {
                return Json("Failed", JsonRequestBehavior.AllowGet);
            }

        }
    }
}



Comments

Popular posts from this blog

Periodic Restart Settings for Application Pool Recycling

Generate image ,pdf and Video Thumb using node js

How to receive JSON object in POST and GET using web api