コード例 #1
0
        private void BindData()
        {
            var emp = new EmployeeManagementContext();

            gvLeave.DataSource = emp.GetLeaveDetails();
            gvLeave.DataBind();
        }
コード例 #2
0
        protected void gvLeave_OnRowDeleting(object sender, GridViewDeleteEventArgs e)
        {
            var context = new EmployeeManagementContext();

            context.DeleteLeaveDetails(Convert.ToInt32(e.Values[0]), true);
            SetStage(Stage.Load);
        }
コード例 #3
0
ファイル: Department.aspx.cs プロジェクト: farooquem/EMS-New
        private void BindData()
        {
            var emp = new EmployeeManagementContext();

            gvDepartment.DataSource = emp.GetAllDepartment();
            gvDepartment.DataBind();
        }
コード例 #4
0
ファイル: Department.aspx.cs プロジェクト: farooquem/EMS-New
        protected void btnSave_OnClick(object sender, EventArgs e)
        {
            var context = new EmployeeManagementContext();

            if (string.IsNullOrEmpty(hdnId.Value))
            {
                if (context.DepartmentExists(txtDepartment.Text.Trim()))
                {
                    ShowAlert(" Department already present");
                    return;
                }
                context.AddDepartment(txtDepartment.Text, chkActive.Checked,
                                      Session["userId"] == null ? "Admin" : Convert.ToString(Session["userId"]));
                ShowAlert(" Department Added");
            }
            else
            {
                if (context.DepartmentExists(txtDepartment.Text.Trim(), Convert.ToInt32(hdnId.Value)))
                {
                    ShowAlert(" Department already present");
                    return;
                }

                context.UpdateDepartment(txtDepartment.Text, chkActive.Checked,
                                         Convert.ToInt32(hdnId.Value));
                ShowAlert(" Department Updated");
            }

            BindData();

            SetStage(Stage.Load);
        }
コード例 #5
0
        private async void btnSave_Click(object sender, EventArgs e)
        {
            var id           = txtIdNo.Text;
            var name         = txtFullName.Text;
            var address      = txtAddress.Text;
            var contactNo    = txtContact.Text;
            var email        = txtEmail.Text;
            var desigination = txtDesignation.Text;
            var department   = comboBoxDepartment.Text;
            var dateOfJoin   = dateTimePicker.Text;
            var wageRate     = txtWage.Text;
            var hourWorked   = txtWorkedHour.Text;

            using (var context = new EmployeeManagementContext())
            {
                var emp = new Employee(id, name, address, contactNo, email, desigination, department, dateOfJoin, wageRate, hourWorked);
                context.Employees.Add(emp);
                await context.SaveChangesAsync();
            }

            //instance event args and value has been passed
            var args = new IdentityEventArgs(id, name, address, contactNo, email, desigination, department, dateOfJoin, wageRate, hourWorked);

            //Event has be raised with update arguments of delegate
            IdentityUpdated?.Invoke(this, args);

            this.Hide();
        }
コード例 #6
0
        private void BindData()
        {
            var emp = new EmployeeManagementContext();

            gvEmployee.DataSource = emp.GetAllEmployee();
            gvEmployee.DataBind();
        }
コード例 #7
0
 public void GetEmployees()
 {
     using (var context = new EmployeeManagementContext())
     {
         List <Employee> employees = context.Employees.ToList <Employee>();
         if (employees.Count > 1)
         {
             foreach (Employee emp in employees)
             {
                 var count = dataGridView.Rows.Count - 1;
                 dataGridView.Rows.Add();
                 dataGridView.Rows[count].Cells[0].Value = emp.EmployeeID;
                 dataGridView.Rows[count].Cells[1].Value = emp.FullName;
                 dataGridView.Rows[count].Cells[2].Value = emp.Address;
                 dataGridView.Rows[count].Cells[3].Value = emp.Contact;
                 dataGridView.Rows[count].Cells[4].Value = emp.Email;
                 dataGridView.Rows[count].Cells[5].Value = emp.Designation;
                 dataGridView.Rows[count].Cells[6].Value = emp.Department;
                 dataGridView.Rows[count].Cells[7].Value = emp.DateOfJoin;
                 dataGridView.Rows[count].Cells[8].Value = emp.WageRate;
                 dataGridView.Rows[count].Cells[9].Value = emp.WorkedHour;
                 count++;
             }
         }
     }
 }
コード例 #8
0
ファイル: Login.aspx.cs プロジェクト: farooquem/EMS
        protected void BtnLogin_OnClick(object sender, EventArgs e)
        {
            if (string.IsNullOrWhiteSpace(txtUsername.Text))
            {
                ShowAlert("Enter Username");
                return;
            }
            if (string.IsNullOrWhiteSpace(txtPassword.Text))
            {
                ShowAlert("Enter Password");
                return;
            }

            EmployeeManagementContext emp = new EmployeeManagementContext();
            var result = emp.Login(txtUsername.Text, txtPassword.Text);

            if (result.EmployeeId != 0)
            {
                Session["userId"]     = result.Username;
                Session["employeeId"] = result.EmployeeId;
                Response.Redirect("dashboard.aspx");
            }
            else
            {
                ShowAlert("Invalid Username/Password");
                return;
            }
        }
コード例 #9
0
        protected void gvLeave_OnSelectedIndexChanged(object sender, EventArgs e)
        {
            var employeeId = gvLeave.SelectedRow.Cells[2].Text;
            var approved   = gvLeave.SelectedRow.Cells[8].Text;

            if (approved == "Yes")
            {
                gvLeave.SelectedIndex = -1;
                SetStage(Stage.Load);
                return;
            }

            var context = new EmployeeManagementContext();
            var data    = context.GetLeaveDetails(employeeId);

            if (data.Rows.Count == 0)
            {
                ShowAlert("No Data");
                SetStage(Stage.Load);
            }
            else
            {
                hdnId.Value      = Convert.ToString(data.Rows[0]["Id"]);
                txtFromDate.Text = Convert.ToDateTime(data.Rows[0]["FromDate"]).ToString("yyyy-MM-df");
                txtFromDate.Text = Convert.ToDateTime(data.Rows[0]["toDate"]).ToString("yyyy-MM-df");
                ddlEmployeeName.SelectedValue = Convert.ToString(data.Rows[0]["EmployeeId"]);
                txtReason.Text = Convert.ToString(data.Rows[0]["Reason"]);
                SetStage(Stage.Edit);
            }
        }
コード例 #10
0
ファイル: Employee.aspx.cs プロジェクト: farooquem/EMS
        protected void Page_Load(object sender, EventArgs e)
        {
            var userId = Convert.ToString(Session["userId"]);

            if (!IsPostBack)
            {
                if (string.IsNullOrWhiteSpace(userId))
                {
                    Response.Redirect("~/Login.aspx");
                }

                var emp = new EmployeeManagementContext();
                ddlDepartment.DataSource     = emp.GetActiveDepartment();
                ddlDepartment.DataTextField  = "Name";
                ddlDepartment.DataValueField = "Id";
                ddlDepartment.DataBind();
                ddlGender.DataSource     = EmployeeManagementContext.GetGenderList();
                ddlGender.DataTextField  = "Name";
                ddlGender.DataValueField = "Id";
                ddlGender.DataBind();
                BindData();
                SearchDataTable();
                SetStage(Stage.Load);
            }
        }
コード例 #11
0
        protected void BtnView_OnClick(object sender, EventArgs e)
        {
            var context = new EmployeeManagementContext();
            var dt      = context.GetPaySlip(Convert.ToInt32(ddlYear.SelectedValue), Convert.ToInt32(ddlMonth.SelectedValue));

            gvpaySlip.DataSource = dt;
            gvpaySlip.DataBind();
        }
コード例 #12
0
        private void BindData()
        {
            var context = new EmployeeManagementContext();
            var dt      = context.GetPaySlip(Convert.ToInt32(ddlYear.SelectedValue), Convert.ToInt32(ddlMonth.SelectedValue));

            gvpaySlip.DataSource = dt;
            gvpaySlip.DataBind();
        }
コード例 #13
0
ファイル: InOutDetail.aspx.cs プロジェクト: farooquem/EMS-New
        protected void btnGenerate_OnClick(object sender, EventArgs e)
        {
            EmployeeManagementContext context = new EmployeeManagementContext();

            context.GenerateInOut(Convert.ToDateTime(txtFromDate.Text), Convert.ToDateTime(txtToDate.Text),
                                  Convert.ToInt32(ddlEmployee.SelectedValue));
            ShowAlert("In/Out time generated for below date range");
        }
コード例 #14
0
ファイル: Employee.aspx.cs プロジェクト: farooquem/EMS
        private void BindData()
        {
            var emp = new EmployeeManagementContext();

            gvEmployee.DataSource = emp.GetAllEmployee(ddlFilter.SelectedValue,
                                                       txtSearch.Text.Replace("'", string.Empty).Replace("`", string.Empty).Replace("-", string.Empty));
            gvEmployee.DataBind();
        }
コード例 #15
0
ファイル: InOutDetail.aspx.cs プロジェクト: farooquem/EMS-New
        private void BindData()
        {
            var context = new EmployeeManagementContext();

            gvInOut.DataSource = context.GetInOutDetails(Convert.ToDateTime(txtFromDate.Text),
                                                         Convert.ToDateTime(txtToDate.Text),
                                                         Convert.ToInt32(ddlEmployee.SelectedValue));
            gvInOut.DataBind();
        }
コード例 #16
0
        protected void btnGenerate_OnClick(object sender, EventArgs e)
        {
            var context = new EmployeeManagementContext();

            context.SaveSalarySlip(Convert.ToInt32(ddlYear.SelectedValue), Convert.ToInt32(ddlMonth.SelectedValue),
                                   string.IsNullOrEmpty(Convert.ToString(Session["userId"]))
                  ? "Admin"
                  : Convert.ToString(Session["userId"]), Convert.ToInt32(ddlEmployee.SelectedValue));
            ShowAlert(" Pay slip generated for the selected month");
        }
コード例 #17
0
ファイル: Department.aspx.cs プロジェクト: farooquem/EMS-New
        protected void gvDepartment_OnSelectedIndexChanged(object sender, EventArgs e)
        {
            txtDepartment.Text = gvDepartment.SelectedRow.Cells[2].Text;
            var context = new EmployeeManagementContext();
            var dt      = context.GetDepartment(txtDepartment.Text);

            if (dt.Rows.Count > 0)
            {
                hdnId.Value        = Convert.ToString(dt.Rows[0]["Id"]);
                txtDepartment.Text = Convert.ToString(dt.Rows[0]["Name"]);
                chkActive.Checked  = Convert.ToString(dt.Rows[0]["IsActive"]) == "Yes";
            }

            SetStage(Stage.Edit);
        }
コード例 #18
0
ファイル: InOutDetail.aspx.cs プロジェクト: farooquem/EMS
 protected void btnSearch_OnClick(object sender, EventArgs e)
 {
     try
     {
         var context = new EmployeeManagementContext();
         gvInOut.DataSource = context.GetInOutDetails(Convert.ToDateTime(txtFromDate.Text),
                                                      Convert.ToDateTime(txtToDate.Text),
                                                      Convert.ToInt32(ddlEmployee.SelectedValue));
         gvInOut.DataBind();
     }
     catch (Exception exception)
     {
         Console.WriteLine(exception);
         throw;
     }
 }
コード例 #19
0
ファイル: InOutDetail.aspx.cs プロジェクト: farooquem/EMS-New
        protected void Page_Load(object sender, EventArgs e)
        {
            var userId = Convert.ToString(Session["userId"]);

            if (!IsPostBack)
            {
                if (string.IsNullOrWhiteSpace(userId))
                {
                    Response.Redirect("~/Login.aspx");
                }
                var context = new EmployeeManagementContext();
                ddlEmployee.DataSource     = context.GetOnlyEmployeeId();
                ddlEmployee.DataTextField  = "EmployeeId";
                ddlEmployee.DataValueField = "Id";
                ddlEmployee.DataBind();
                txtFromDate.Text = DateTime.Now.ToString("yyyy-MM-dd");
                txtToDate.Text   = DateTime.Now.ToString("yyyy-MM-dd");
            }
        }
コード例 #20
0
        protected void btnSave_OnClick(object sender, EventArgs e)
        {
            var from = new DateTime();
            var to   = new DateTime();

            try
            {
                from = DateTime.Parse(txtFromDate.Text);
                to   = DateTime.Parse(txtToDate.Text);
            }
            catch (Exception)
            {
                ShowAlert("Enter valid date");
                return;
            }

            var noOfDays = to.Subtract(from);

            if (noOfDays.Days < 0)
            {
                ShowAlert("To date cannot be more than from date");
                return;
            }

            var context = new EmployeeManagementContext();

            context.InsertLeaveDetails(Convert.ToInt32(ddlEmployeeName.SelectedValue), txtFromDate.Text,
                                       txtToDate.Text,
                                       txtReason.Text,
                                       noOfDays.Days + 1, string.IsNullOrEmpty(Convert.ToString(Session["userId"]))
                    ? "Admin"
                    : Convert.ToString(Session["userId"]));
            ShowAlert(" Leaves Added");


            BindData();

            SetStage(Stage.Load);
        }
コード例 #21
0
        public async void ExportDataToCSV()
        {
            var csv = new System.Text.StringBuilder();

            using (var context = new EmployeeManagementContext())
            {
                foreach (var employee in context.Employees)
                {
                    var newLine = string.Format("{0},{1},{2},{3},{4},{5},{6},{7},{8},{9}", employee.EmployeeID, employee.FullName, employee.Address, employee.Contact, employee.Email, employee.Designation, employee.Department, employee.DateOfJoin, employee.WageRate, employee.WorkedHour);

                    csv.AppendLine(newLine);
                }
            }
            SaveFileDialog saveFileDialog = new SaveFileDialog();

            saveFileDialog.Title  = "Save Employee Data";
            saveFileDialog.Filter = "CSV file(*.csv)|*.csv";

            if (saveFileDialog.ShowDialog() == DialogResult.OK)
            {
                File.WriteAllText(saveFileDialog.FileName, csv.ToString());
            }
        }
コード例 #22
0
        protected void Page_Load(object sender, EventArgs e)

        {
            var userId = Convert.ToString(Session["userId"]);

            selected_tab.Value = ((HiddenField)Page.FindControl(selected_tab.UniqueID)).Value;
            if (!IsPostBack)
            {
                if (string.IsNullOrWhiteSpace(userId))
                {
                    Response.Redirect("~/Login.aspx");
                }
                var years = new[] { DateTime.Now.Year - 1, DateTime.Now.Year };
                ddlYear.DataSource = years;
                ddlYear.DataBind();
                ddlYear.SelectedValue  = DateTime.Now.Year.ToString();
                ddlViewYear.DataSource = years;
                ddlViewYear.DataBind();
                ddlViewYear.SelectedValue = DateTime.Now.Year.ToString();
                var months = Enumerable.Range(1, 12).Select(i => new { I = i, M = DateTimeFormatInfo.InvariantInfo.GetMonthName(i) });
                ddlMonth.DataSource     = months;
                ddlMonth.DataTextField  = "M";
                ddlMonth.DataValueField = "I";
                ddlMonth.DataBind();

                ddlViewMonth.DataSource     = months;
                ddlViewMonth.DataTextField  = "M";
                ddlViewMonth.DataValueField = "I";
                ddlViewMonth.DataBind();
                var context = new EmployeeManagementContext();
                ddlEmployee.DataSource     = context.GetOnlyEmployee();
                ddlEmployee.DataTextField  = "Name";
                ddlEmployee.DataValueField = "Id";
                ddlEmployee.DataBind();
                ddlEmployee.SelectedIndex = 0;
            }
        }
コード例 #23
0
        protected void btnChangePassword_OnClick(object sender, EventArgs e)
        {
            if (txtNewPassword.Text.Trim().Length < 8)
            {
                ShowAlert("new password minimum length should be 8 character");
                return;
            }
            else if (txtConfirmPassword.Text.Trim().Length < 8)
            {
                ShowAlert("confirm password minimum length should be 8 character");
                return;
            }
            else if (txtNewPassword.Text.Trim() == txtCurrentPassword.Text.Trim())
            {
                ShowAlert("New password should be different then old password");
                return;
            }

            var context = new EmployeeManagementContext();
            var user    = context.UserExists(txtUsername.Text.Trim());

            if (string.IsNullOrEmpty(user.Username))
            {
                ShowAlert("No user exists");
                return;
            }
            else if (user.Password != txtCurrentPassword.Text.Trim())
            {
                ShowAlert("current password does not match");
                return;
            }

            user.Password   = txtNewPassword.Text.Trim();
            user.ModifiedOn = DateTime.Now;
            context.UpdateUser(user);
            Response.Redirect("~/Login.aspx");
        }
コード例 #24
0
ファイル: Employee.aspx.cs プロジェクト: farooquem/EMS
        protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
        {
            var employeeId = gvEmployee.SelectedRow.Cells[2].Text;
            var context    = new EmployeeManagementContext();
            var dt         = context.GetEmployee(employeeId);

            hdnId.Value        = Convert.ToString(dt.Rows[0]["Id"]);
            lblEmployeeId.Text = Convert.ToString(dt.Rows[0]["EmployeeId"]);
            txtFirstName.Text  = Convert.ToString(dt.Rows[0]["FirstName"]);
            txtMiddleName.Text = Convert.ToString(dt.Rows[0]["MiddleName"]);
            txtLastName.Text   = Convert.ToString(dt.Rows[0]["LastName"]);
            try
            {
                ddlDepartment.SelectedValue = Convert.ToString(dt.Rows[0]["DepartmentId"]);
            }
            catch (Exception) { }

            txtJobTitle.Text      = Convert.ToString(dt.Rows[0]["Job_Title"]);
            txtContactNumber.Text = Convert.ToString(dt.Rows[0]["ContactNumber"]);
            txtEmail.Text         = Convert.ToString(dt.Rows[0]["Email"]);
            txtAddress.Text       = Convert.ToString(dt.Rows[0]["Address"]);
            txtdob.Text           = Convert.ToDateTime(dt.Rows[0]["DateOfBirth"]).ToString("yyyy-MM-dd");
            txtdoj.Text           = Convert.ToDateTime(dt.Rows[0]["DateOfJoining"]).ToString("yyyy-MM-dd");
            txtdol.Text           = dt.Rows[0]["DateOfLeaving"] == DBNull.Value
                ? string.Empty
                : Convert.ToDateTime(dt.Rows[0]["DateOfLeaving"]).ToString("yyyy-MM-dd");
            ddlGender.SelectedValue = Convert.ToString(dt.Rows[0]["Gender"]);
            chkActive.Checked       = Convert.ToBoolean(dt.Rows[0]["IsActive"]);
            var dt1 = context.GetPayEmployeeDetails(Convert.ToInt32(hdnId.Value));

            if (dt1.Rows.Count > 0)
            {
                txtBasicSalary.Text = Convert.ToInt32(dt1.Rows[0]["BasicSalary"]).ToString();
            }

            SetStage(Stage.Edit);
        }
コード例 #25
0
        /**
         *
         * This method will help to import CSV file and set the values on dataGridView
         *
         * **/
        public async void ImportEmployeeFromCsv()
        {
            using (var openFileDialog1 = new OpenFileDialog()
            {
                Filter = "CSV|*.csv", ValidateNames = true, Multiselect = false
            })
            {
                if (openFileDialog1.ShowDialog() != DialogResult.OK)
                {
                    return;
                }

                const char sepChar      = ',';
                const char quoteChar    = '"';
                var        employeeList = new List <string[]>();
                try
                {
                    using (Stream stream = null)
                    {
                        var rows = File.ReadAllLines(openFileDialog1.FileName);
                        foreach (var csvRow in rows)
                        {
                            var inQuotes = false;
                            var fields   = new List <string>();
                            var field    = "";
                            for (var i = 0; i < csvRow.Length; i++)
                            {
                                if (inQuotes)
                                {
                                    if (i < csvRow.Length - 1 && csvRow[i] == quoteChar && csvRow[i + 1] == quoteChar)
                                    {
                                        i      = i++;
                                        field += quoteChar;
                                    }
                                    else if (csvRow[i] == quoteChar)
                                    {
                                        inQuotes = false;
                                    }
                                    else
                                    {
                                        if (csvRow[i - 1] == quoteChar)
                                        {
                                            field  = "";
                                            field += csvRow[i];
                                        }
                                        else
                                        {
                                            field += csvRow[i];
                                        }
                                    }
                                }
                                else
                                {
                                    if (csvRow[i] == quoteChar)
                                    {
                                        inQuotes = true;
                                    }
                                    if (csvRow[i] == sepChar)
                                    {
                                        fields.Add(field);
                                        field = "";
                                    }
                                    else
                                    {
                                        field += csvRow[i];
                                    }
                                }
                            }
                            if (!string.IsNullOrEmpty(field))
                            {
                                fields.Add(field);
                                field = "";
                            }
                            employeeList.Add(fields.ToArray());
                        }
                    }
                }
                catch (Exception er)
                {
                    MessageBox.Show(er.Message, "Error !", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                foreach (var value in employeeList)
                {
                    using (var context = new EmployeeManagementContext())
                    {
                        dataGridView.Rows.Add(value[0], value[1], value[2], value[3], value[4], value[5], value[6], value[7], value[8], value[9]);
                        var emp = new Employee(value[0], value[1], value[2], value[3], value[4], value[5], value[6], value[7], value[8], value[9]);
                        context.Employees.Add(emp);
                        try
                        {
                            await context.SaveChangesAsync();
                        }
                        catch (Exception ex)
                        {
                            MessageBox.Show(ex.Message, "Error !", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        }
                    }
                }
            }
        }
コード例 #26
0
ファイル: Employee.aspx.cs プロジェクト: farooquem/EMS
        protected void btnSave_OnClick(object sender, EventArgs e)
        {
            var context = new EmployeeManagementContext();

            if (string.IsNullOrEmpty(hdnId.Value))
            {
                var dt = new DataTable();
                dt.Columns.AddRange(
                    new[]
                {
                    new DataColumn("EmployeeId", typeof(string)),
                    new DataColumn("FirstName", typeof(string)),
                    new DataColumn("MiddleName", typeof(string)),
                    new DataColumn("LastName", typeof(string)),
                    new DataColumn("DepartmentId", typeof(int)),
                    new DataColumn("Job_Title", typeof(string)),
                    new DataColumn("ContactNumber", typeof(string)),
                    new DataColumn("Email", typeof(string)),
                    new DataColumn("Address", typeof(string)),
                    new DataColumn("DateOfBirth", typeof(DateTime)),
                    new DataColumn("DateofJoining", typeof(DateTime)),
                    new DataColumn("DateOfLeaving", typeof(DateTime)),
                    new DataColumn("Gender", typeof(string)),
                    new DataColumn("CreatedOn", typeof(DateTime)),
                    new DataColumn("CreatedBy", typeof(string)),
                    new DataColumn("IsActive", typeof(bool)),
                    new DataColumn("BasicSalary", typeof(int))
                });
                var employeeId = context.GetEmployeeId();
                dt.Rows.Add(
                    employeeId,
                    txtFirstName.Text,
                    txtMiddleName.Text,
                    txtLastName.Text, ddlDepartment.SelectedValue,
                    txtJobTitle.Text,
                    txtContactNumber.Text,
                    txtEmail.Text,
                    txtAddress.Text,
                    txtdob.Text,
                    txtdoj.Text,
                    string.IsNullOrEmpty(txtdol.Text) ? null : txtdoj.Text,
                    ddlGender.SelectedValue,
                    DateTime.Now,
                    Session["userId"] ?? "Admin",
                    chkActive.Checked,
                    txtBasicSalary.Text
                    );
                context.AddEmployee(dt);
                ShowAlert(" Employee Added");
            }
            else
            {
                var dt = new DataTable();
                dt.Columns.AddRange(
                    new[]
                {
                    new DataColumn("EmployeeId", typeof(string)),
                    new DataColumn("FirstName", typeof(string)),
                    new DataColumn("MiddleName", typeof(string)),
                    new DataColumn("LastName", typeof(string)),
                    new DataColumn("DepartmentId", typeof(int)),
                    new DataColumn("Job_Title", typeof(string)),
                    new DataColumn("ContactNumber", typeof(string)),
                    new DataColumn("Email", typeof(string)),
                    new DataColumn("Address", typeof(string)),
                    new DataColumn("DateOfBirth", typeof(DateTime)),
                    new DataColumn("DateofJoining", typeof(DateTime)),
                    new DataColumn("DateOfLeaving", typeof(DateTime)),
                    new DataColumn("Gender", typeof(string)),
                    new DataColumn("CreatedOn", typeof(DateTime)),
                    new DataColumn("CreatedBy", typeof(string)),
                    new DataColumn("IsActive", typeof(bool)),
                    new DataColumn("BasicSalary", typeof(int))
                });
                dt.Rows.Add(
                    lblEmployeeId.Text,
                    txtFirstName.Text,
                    txtMiddleName.Text,
                    txtLastName.Text, ddlDepartment.SelectedValue,
                    txtJobTitle.Text,
                    txtContactNumber.Text,
                    txtEmail.Text,
                    txtAddress.Text,
                    txtdob.Text,
                    txtdoj.Text,
                    string.IsNullOrEmpty(txtdol.Text) ? null : txtdoj.Text,
                    ddlGender.SelectedValue,
                    DateTime.Now,
                    Session["userId"] ?? "Admin",
                    chkActive.Checked,
                    txtBasicSalary.Text
                    );
                context.UpdateEmployee(dt, Convert.ToInt32(hdnId.Value));
                ShowAlert(" Employee Updated");
            }

            BindData();

            SetStage(Stage.Load);
        }