public List <LeaveAssignedPerSession> ShowLeaveDetailsOfEmployeeByDepartment(int departmentId)
    {
        DBDataHelper.ConnectionString = ConfigurationManager.ConnectionStrings["CSBiometricAttendance"].ConnectionString;
        List <SqlParameter> lstDetails = new List <SqlParameter>();

        lstDetails.Add(new SqlParameter("@departmentId", departmentId));
        DataTable dt = new DataTable();
        DataSet   ds;
        int       i = 0;

        using (DBDataHelper objDDBDataHelper = new DBDataHelper())
        {
            ds = objDDBDataHelper.GetDataSet("spAssignLeaveByFaculty", SQLTextType.Stored_Proc, lstDetails);

            List <LeaveAssignedPerSession> lstLeaveAssignedPerSession = new List <LeaveAssignedPerSession>();
            foreach (DataRow rows in ds.Tables[0].Rows)
            {
                LeaveAssignedPerSession objLeaveAssignedPerSession = new LeaveAssignedPerSession();
                objLeaveAssignedPerSession.EmployeeName = (ds.Tables[0].Rows[i][0]).ToString();
                objLeaveAssignedPerSession.leaveType    = Convert.ToInt32(ds.Tables[0].Rows[i][1]);
                objLeaveAssignedPerSession.leaveCount   = Convert.ToInt32(ds.Tables[0].Rows[i][2]);
                lstLeaveAssignedPerSession.Add(objLeaveAssignedPerSession);
                i++;
            }
            return(lstLeaveAssignedPerSession);
        }
    }
    protected void btnUpdate_Click(object sender, EventArgs e)
    {
        List <LeaveAssignedRecord> lstLeaveAssignedRecord = new List <LeaveAssignedRecord>();

        DBDataHelper.ConnectionString = ConfigurationManager.ConnectionStrings["CSBiometricAttendance"].ConnectionString;
        DataSet ds;
        int     leaveId;
        LeaveAssignedPerSession objLeaveAssignedPerSession = new LeaveAssignedPerSession();
        ManageReports           objManageReports           = new ManageReports();

        foreach (RepeaterItem i in EditgvLeaves.Items)
        {
            TextBox             txtLeaveCount = (TextBox)i.FindControl("txtLeaveCount");
            Label               txtLeaveName  = (Label)i.FindControl("txtLeave");
            string              leaveName     = txtLeaveName.Text;
            List <SqlParameter> lstParams     = new List <SqlParameter>();
            lstParams.Add(new SqlParameter("@name", leaveName));
            string query = "Select Id from tblTypeOfLeave where Name = @name";
            using (DBDataHelper objDDBDataHelper = new DBDataHelper())
            {
                ds      = objDDBDataHelper.GetDataSet(query, SQLTextType.Query, lstParams);
                leaveId = Convert.ToInt32(ds.Tables[0].Rows[0][0]);
            }

            DateTime SessionStartDate, SessionEndDate;
            if (DateTime.Now.Month >= 8)
            {
                SessionStartDate = new DateTime(DateTime.Now.Year, 08, 01);
                SessionEndDate   = new DateTime(DateTime.Now.Year + 1, 07, 31);
            }
            else
            {
                SessionStartDate = new DateTime(DateTime.Now.Year - 1, 08, 01);
                SessionEndDate   = new DateTime(DateTime.Now.Year, 07, 31);
            }
            objLeaveAssignedPerSession.EmployeeId = Convert.ToInt32(Session["empId"]);
            objLeaveAssignedPerSession.leaveCount = Convert.ToInt32(txtLeaveCount.Text);
            objLeaveAssignedPerSession.leaveType  = leaveId;
            objManageReports.UpdateLeavesAssignedPerSessionEmployeeWise(objLeaveAssignedPerSession, SessionStartDate, SessionEndDate);
        }

        popupEditLeaveAssigned.Hide();

        int           departmentId      = Convert.ToInt32(ddlShowDepartment.SelectedValue);
        ManageReports objManageReports1 = new ManageReports();

        lstLeaveAssignedRecord = objManageReports1.GetLeavesAssignedPerSession(departmentId, DateTime.Now);
        //grid1.DataSource = lstLeaveAssignedRecord;
        //grid1.DataBind();
    }
    protected void btnUpdate_Click(object sender, EventArgs e)
    {
        List<LeaveAssignedRecord> lstLeaveAssignedRecord = new List<LeaveAssignedRecord>();
        DBDataHelper.ConnectionString = ConfigurationManager.ConnectionStrings["CSBiometricAttendance"].ConnectionString;
        DataSet ds;
        int leaveId;
        LeaveAssignedPerSession objLeaveAssignedPerSession = new LeaveAssignedPerSession();
        ManageReports objManageReports = new ManageReports();
        foreach (RepeaterItem i in EditgvLeaves.Items)
        {
            TextBox txtLeaveCount = (TextBox)i.FindControl("txtLeaveCount");
            Label txtLeaveName = (Label)i.FindControl("txtLeave");
            string leaveName = txtLeaveName.Text;
            List<SqlParameter> lstParams = new List<SqlParameter>();
            lstParams.Add(new SqlParameter("@name", leaveName));
            string query = "Select Id from tblTypeOfLeave where Name = @name";
            using (DBDataHelper objDDBDataHelper = new DBDataHelper())
            {
                ds = objDDBDataHelper.GetDataSet(query, SQLTextType.Query, lstParams);
                leaveId = Convert.ToInt32(ds.Tables[0].Rows[0][0]);
            }

            DateTime SessionStartDate, SessionEndDate;
            if (DateTime.Now.Month >= 8)
            {
                SessionStartDate = new DateTime(DateTime.Now.Year, 08, 01);
                SessionEndDate = new DateTime(DateTime.Now.Year+1, 07, 31);
            }
            else
            {
                SessionStartDate = new DateTime(DateTime.Now.Year-1, 08, 01);
                SessionEndDate = new DateTime(DateTime.Now.Year, 07, 31);
            }
            objLeaveAssignedPerSession.EmployeeId = Convert.ToInt32(Session["empId"]);
            objLeaveAssignedPerSession.leaveCount = Convert.ToInt32(txtLeaveCount.Text);
            objLeaveAssignedPerSession.leaveType = leaveId;
            objManageReports.UpdateLeavesAssignedPerSessionEmployeeWise(objLeaveAssignedPerSession, SessionStartDate,SessionEndDate);
        }

        popupEditLeaveAssigned.Hide();

        int departmentId = Convert.ToInt32(ddlShowDepartment.SelectedValue);
        ManageReports objManageReports1 = new ManageReports();
        lstLeaveAssignedRecord = objManageReports1.GetLeavesAssignedPerSession(departmentId, DateTime.Now);
        //grid1.DataSource = lstLeaveAssignedRecord;
        //grid1.DataBind();
    }
    public List<LeaveAssignedPerSession> ShowLeaveDetailsOfEmployeeByDepartment(int departmentId)
    {
        DBDataHelper.ConnectionString = ConfigurationManager.ConnectionStrings["CSBiometricAttendance"].ConnectionString;
        List<SqlParameter> lstDetails = new List<SqlParameter>();
        lstDetails.Add(new SqlParameter("@departmentId", departmentId));
        DataTable dt = new DataTable();
        DataSet ds;
        int i = 0;
        using (DBDataHelper objDDBDataHelper = new DBDataHelper())
        {
            ds = objDDBDataHelper.GetDataSet("spAssignLeaveByFaculty", SQLTextType.Stored_Proc, lstDetails);

            List<LeaveAssignedPerSession> lstLeaveAssignedPerSession = new List<LeaveAssignedPerSession>();
            foreach (DataRow rows in ds.Tables[0].Rows)
            {
                LeaveAssignedPerSession objLeaveAssignedPerSession = new LeaveAssignedPerSession();
                objLeaveAssignedPerSession.EmployeeName = (ds.Tables[0].Rows[i][0]).ToString();
                objLeaveAssignedPerSession.leaveType = Convert.ToInt32(ds.Tables[0].Rows[i][1]);
                objLeaveAssignedPerSession.leaveCount = Convert.ToInt32(ds.Tables[0].Rows[i][2]);
                lstLeaveAssignedPerSession.Add(objLeaveAssignedPerSession);
                i++;
            }
            return lstLeaveAssignedPerSession;
        }
    }
    public bool UpdateLeavesAssignedPerSessionEmployeeWise(LeaveAssignedPerSession objLeaveAssignedPerSession, DateTime sessionStartDate, DateTime sessionEndDate)
    {
        DBDataHelper.ConnectionString = ConfigurationManager.ConnectionStrings["CSBiometricAttendance"].ConnectionString;

        List<SqlParameter> lstParams = new List<SqlParameter>();

        lstParams.Add(new SqlParameter("@employeeId", objLeaveAssignedPerSession.EmployeeId));
        lstParams.Add(new SqlParameter("@leaveTypeId", objLeaveAssignedPerSession.leaveType));
        lstParams.Add(new SqlParameter("@noOfLeaves", objLeaveAssignedPerSession.leaveCount));
        lstParams.Add(new SqlParameter("@sessionStartDate", sessionStartDate.Date));
        lstParams.Add(new SqlParameter("@sessionEndDate", sessionEndDate.Date));

        string query = @"UPDATE [dbo].[tblLeaveAssignedPerSession]
                            SET 
                        [NoOfLeaves] = @noOfLeaves
                            WHERE 
                        EmployeeId = @employeeId AND
		                LeaveTypeId = @leaveTypeId AND 
		                CAST(SessionStartDate AS DATE) = CAST (@sessionStartDate AS DATE) AND
		                CAST(SessionEndDate AS DATE) = CAST (@sessionEndDate AS DATE)";
        try
        {
            using (DBDataHelper objDDBDataHelper = new DBDataHelper())
            {
                objDDBDataHelper.ExecSQL(query, SQLTextType.Query, lstParams);
            }
            return true;
        }
        catch (Exception ex)
        {
            return false;
        }
    }