/// <summary>
        /// Deletes the organisation details.
        /// </summary>
        /// <param name="objDeleteOrganisationDetails">The obj delete organisation details.</param>
        public void DeleteOrganisationDetails(BusinessEntities.OrganisationDetails objDeleteOrganisationDetails)
        {
            objDA    = new DataAccessClass();
            sqlParam = new SqlParameter[2];

            try
            {
                objDA.OpenConnection(DBConstants.GetDBConnectionString());

                sqlParam[0] = new SqlParameter(SPParameter.OrganisationId, SqlDbType.Int);
                if (objDeleteOrganisationDetails.OrganisationId == 0)
                {
                    sqlParam[0].Value = DBNull.Value;
                }
                else
                {
                    sqlParam[0].Value = objDeleteOrganisationDetails.OrganisationId;
                }

                sqlParam[1] = new SqlParameter(SPParameter.EmpId, SqlDbType.Int);
                if (objDeleteOrganisationDetails.EMPId == 0)
                {
                    sqlParam[1].Value = DBNull.Value;
                }
                else
                {
                    sqlParam[1].Value = objDeleteOrganisationDetails.EMPId;
                }

                objDA.ExecuteNonQuerySP(SPNames.Employee_DeleteOrganisationDetails, sqlParam);
            }
            catch (RaveHRException ex)
            {
                throw ex;
            }
            catch (Exception ex)
            {
                throw new RaveHRException(ex.Message, ex, Sources.DataAccessLayer, CLASS_NAME, "DeleteOrganisationDetails", EventIDConstants.RAVE_HR_PROJECTS_DATA_ACCESS_LAYER);
            }
            finally
            {
                objDA.CloseConncetion();
            }
        }
        /// <summary>
        /// Gets the organisation details.
        /// </summary>
        /// <param name="objGetOrganisationDetails">The obj get organisation details.</param>
        /// <returns></returns>
        public BusinessEntities.RaveHRCollection GetOrganisationDetails(BusinessEntities.OrganisationDetails objGetOrganisationDetails)
        {
            Rave.HR.DataAccessLayer.Employees.OrganisationDetails objGetOrganisationDetailsDAL;

            try
            {
                objGetOrganisationDetailsDAL = new Rave.HR.DataAccessLayer.Employees.OrganisationDetails();

                return(objGetOrganisationDetailsDAL.GetOrganisationDetails(objGetOrganisationDetails));
            }
            catch (RaveHRException ex)
            {
                throw ex;
            }
            catch (Exception ex)
            {
                throw new RaveHRException(ex.Message, ex, Sources.BusinessLayer, CLASS_NAME, "GetOrganisationDetails", EventIDConstants.RAVE_HR_EMPLOYEE_BUSNIESS_LAYER);
            }
        }
        /// <summary>
        /// Deletes the non organisation details.
        /// </summary>
        /// <param name="objDeleteOrganisationDetails">The obj delete organisation details.</param>
        public void DeleteNonOrganisationDetails(BusinessEntities.OrganisationDetails objDeleteOrganisationDetails)
        {
            Rave.HR.DataAccessLayer.Employees.OrganisationDetails objDeleteOrganisationDetailsDAL;

            try
            {
                objDeleteOrganisationDetailsDAL = new Rave.HR.DataAccessLayer.Employees.OrganisationDetails();

                objDeleteOrganisationDetailsDAL.DeleteNonOrganisationDetails(objDeleteOrganisationDetails);
            }
            catch (RaveHRException ex)
            {
                throw ex;
            }
            catch (Exception ex)
            {
                throw new RaveHRException(ex.Message, ex, Sources.BusinessLayer, CLASS_NAME, "DeleteOrganisationDetails", EventIDConstants.RAVE_HR_EMPLOYEE_BUSNIESS_LAYER);
            }
        }
        /// <summary>
        /// Adds the organisation details.
        /// </summary>
        /// <param name="objAddOrganisationDetails">The obj add organisation details.</param>
        public void AddOrganisationDetails(BusinessEntities.OrganisationDetails objAddOrganisationDetails)
        {
            try
            {
                objDA = new DataAccessClass();
                objDA.OpenConnection(DBConstants.GetDBConnectionString());
                SqlParameter[] sqlParam = new SqlParameter[10];

                sqlParam[0]       = new SqlParameter(SPParameter.EmpId, SqlDbType.Int);
                sqlParam[0].Value = objAddOrganisationDetails.EMPId;

                sqlParam[1] = new SqlParameter(SPParameter.CompanyName, SqlDbType.NChar, 50);
                if (objAddOrganisationDetails.CompanyName == "" || objAddOrganisationDetails.CompanyName == null)
                {
                    sqlParam[1].Value = DBNull.Value;
                }
                else
                {
                    sqlParam[1].Value = objAddOrganisationDetails.CompanyName;
                }

                sqlParam[2]       = new SqlParameter(SPParameter.MonthSince, SqlDbType.Int);
                sqlParam[2].Value = objAddOrganisationDetails.MonthSince;

                sqlParam[3]       = new SqlParameter(SPParameter.YearSince, SqlDbType.Int);
                sqlParam[3].Value = objAddOrganisationDetails.YearSince;

                sqlParam[4]       = new SqlParameter(SPParameter.MonthTill, SqlDbType.Int);
                sqlParam[4].Value = objAddOrganisationDetails.MonthTill;

                sqlParam[5]       = new SqlParameter(SPParameter.YearTill, SqlDbType.Int);
                sqlParam[5].Value = objAddOrganisationDetails.YearTill;

                sqlParam[6] = new SqlParameter(SPParameter.Designation, SqlDbType.NChar, 50);
                if (objAddOrganisationDetails.Designation == "" || objAddOrganisationDetails.Designation == null)
                {
                    sqlParam[6].Value = DBNull.Value;
                }
                else
                {
                    sqlParam[6].Value = objAddOrganisationDetails.Designation;
                }

                sqlParam[7]       = new SqlParameter(SPParameter.ExperienceType, SqlDbType.Int, 10);
                sqlParam[7].Value = objAddOrganisationDetails.ExperienceType;

                sqlParam[8]       = new SqlParameter(SPParameter.ExperienceInMonth, SqlDbType.Int);
                sqlParam[8].Value = objAddOrganisationDetails.ExperienceMonth;

                sqlParam[9]       = new SqlParameter(SPParameter.ExperienceInYear, SqlDbType.Int);
                sqlParam[9].Value = objAddOrganisationDetails.ExperienceYear;


                int AddProfessinalDetails = objDA.ExecuteNonQuerySP(SPNames.Employee_AddOrganisationDetails, sqlParam);
            }
            catch (RaveHRException ex)
            {
                throw ex;
            }
            catch (Exception ex)
            {
                throw new RaveHRException(ex.Message, ex, Sources.DataAccessLayer, CLASS_NAME, "AddOrganisationDetails", EventIDConstants.RAVE_HR_PROJECTS_DATA_ACCESS_LAYER);
            }
            finally
            {
                objDA.CloseConncetion();
            }
        }
        /// <summary>
        /// Gets the organisation details.
        /// </summary>
        /// <param name="objGetOrganisationDetails">The obj get organisation details.</param>
        /// <returns></returns>
        public BusinessEntities.RaveHRCollection GetOrganisationDetails(BusinessEntities.OrganisationDetails objGetOrganisationDetails)
        {
            // Initialise Data Access Class object
            objDA    = new DataAccessClass();
            sqlParam = new SqlParameter[2];

            // Initialise Collection class object
            raveHRCollection = new BusinessEntities.RaveHRCollection();

            try
            {
                //Open the connection to DB
                objDA.OpenConnection(DBConstants.GetDBConnectionString());

                sqlParam[0] = new SqlParameter(SPParameter.EmpId, SqlDbType.Int);
                if (objGetOrganisationDetails.EMPId == 0)
                {
                    sqlParam[0].Value = DBNull.Value;
                }
                else
                {
                    sqlParam[0].Value = objGetOrganisationDetails.EMPId;
                }

                sqlParam[1] = new SqlParameter(SPParameter.ExperienceType, SqlDbType.Int);
                if (objGetOrganisationDetails.ExperienceType == 0)
                {
                    sqlParam[1].Value = DBNull.Value;
                }
                else
                {
                    sqlParam[1].Value = objGetOrganisationDetails.ExperienceType;
                }

                //Execute the SP
                objDataReader = objDA.ExecuteReaderSP(SPNames.Employee_GetOrganisationDetails, sqlParam);


                while (objDataReader.Read())
                {
                    //Initialise the Business Entity object
                    objOrganisationDetails = new BusinessEntities.OrganisationDetails();

                    objOrganisationDetails.OrganisationId  = int.Parse(objDataReader[DbTableColumn.OId].ToString());
                    objOrganisationDetails.EMPId           = int.Parse(objDataReader[DbTableColumn.EMPId].ToString());
                    objOrganisationDetails.CompanyName     = objDataReader[DbTableColumn.CompanyName].ToString();
                    objOrganisationDetails.MonthSince      = int.Parse(objDataReader[DbTableColumn.MonthSince].ToString());
                    objOrganisationDetails.YearSince       = int.Parse(objDataReader[DbTableColumn.YearSince].ToString());
                    objOrganisationDetails.MonthTill       = int.Parse(objDataReader[DbTableColumn.MonthTill].ToString());
                    objOrganisationDetails.YearTill        = int.Parse(objDataReader[DbTableColumn.YearTill].ToString());
                    objOrganisationDetails.Designation     = objDataReader[DbTableColumn.Designation].ToString();
                    objOrganisationDetails.MonthSinceName  = objDataReader[DbTableColumn.MonthSinceName].ToString();
                    objOrganisationDetails.MonthTillName   = objDataReader[DbTableColumn.MonthTillName].ToString();
                    objOrganisationDetails.WorkingSince    = objOrganisationDetails.MonthSinceName + "-" + objOrganisationDetails.YearSince.ToString();
                    objOrganisationDetails.WorkingTill     = objOrganisationDetails.MonthTillName + "-" + objOrganisationDetails.YearTill.ToString();
                    objOrganisationDetails.ExperienceMonth = objDataReader[DbTableColumn.ExperienceInMonth].ToString() == string.Empty ? 0 : int.Parse(objDataReader[DbTableColumn.ExperienceInMonth].ToString());
                    objOrganisationDetails.ExperienceYear  = objDataReader[DbTableColumn.ExperienceInYear].ToString() == string.Empty ? 0 : int.Parse(objDataReader[DbTableColumn.ExperienceInYear].ToString());
                    objOrganisationDetails.Experience      = objOrganisationDetails.ExperienceYear + " " + YEARS + "-" + objOrganisationDetails.ExperienceMonth + " " + MONTHS;

                    // Add the object to Collection
                    raveHRCollection.Add(objOrganisationDetails);
                }

                // Return the Collection
                return(raveHRCollection);
            }
            catch (RaveHRException ex)
            {
                throw ex;
            }
            catch (Exception ex)
            {
                throw new RaveHRException(ex.Message, ex, Sources.DataAccessLayer, CLASS_NAME, "GetProfessionalDetails", EventIDConstants.RAVE_HR_PROJECTS_DATA_ACCESS_LAYER);
            }
            finally
            {
                if (objDataReader != null)
                {
                    objDataReader.Close();
                }

                objDA.CloseConncetion();
            }
        }