private IList <Member> FindByEmployer(ISession session, int EmployerID)
    {
        String query = "";

        query = @"
		select * from Account
					inner join dbo.Employer on dbo.Employer.EmployerID = dbo.Account.EmployerID
					where  dbo.Account.AccountDiscriminator = 2 and dbo.Employer.EmployerID ="                     + EmployerID + @"
					AND (dbo.Account.EffectiveFrom <= GETDATE())  
					AND (dbo.Account.EffectiveTo >= GETDATE())"                    ;
        string terminationCondition = " and dbo.Account.TerminationInfoID is not null ";

        if (TerminationStatus.Equals(EmployeeTerminatedStatus.Terminated))
        {
            query += terminationCondition;
        }
        IList <Member> results =
            session.CreateSQLQuery(query).AddEntity("employee",
                                                    typeof(Member)).List <Member>();

        return(results);
    }
    private IList <Member> FindLikeByName(int findType, string keyword)
    {
        String divisionCode = null;

        divisionCode = ddDepartment.SelectedItem != null?ddDepartment.SelectedItem.Value.ToString() : null;

        Employer employer = getPageEmployer();
        String   query    = "";

        if (findType == 1)
        {
            if (divisionCode == null || divisionCode.Equals("-All Division-"))
            {
                query = @"select * from Account where AccountID in(
                        SELECT     dbo.Account.AccountID
                        FROM         dbo.Person INNER JOIN
                      dbo.Account ON dbo.Person.PersonID = dbo.Account.EmployeeID INNER JOIN
                      dbo.PersonName ON dbo.Person.CurrentNameID = dbo.PersonName.PersonNameID INNER JOIN
                      dbo.MLSValue ON dbo.PersonName.FirstNameID = dbo.MLSValue.MLSID
                 
                      where  dbo.MLSValue.Value like N'" + keyword + @"%' and Account.AccountDiscriminator=2                     
                        and EmployerID=" + employer.EmployerID + @"
                       ";
            }
            else
            {
                query = @"select * from Account where AccountID in(
                        SELECT     dbo.Account.AccountID
                        FROM         dbo.Person INNER JOIN
                      dbo.Account ON dbo.Person.PersonID = dbo.Account.EmployeeID INNER JOIN
                      dbo.PersonName ON dbo.Person.CurrentNameID = dbo.PersonName.PersonNameID INNER JOIN
                      dbo.MLSValue ON dbo.PersonName.FirstNameID = dbo.MLSValue.MLSID
                    inner join EmployeeInfo  on Account.AccountID=EmployeeInfo.AccountID
                      where  dbo.MLSValue.Value like N'" + keyword + @"%' and Account.AccountDiscriminator=2                     
                        and EmployerID=" + employer.EmployerID + @"
                        and EmployeeInfo.DivisionCode='" + divisionCode + @"')
                       ";
            }
        }
        else if (findType == 2)
        {
            if (divisionCode == null || divisionCode.Equals("-All Division-"))
            {
                query = @"select * from Account where AccountID in(
                        SELECT     dbo.Account.AccountID
                        FROM         dbo.Person INNER JOIN
                      dbo.Account ON dbo.Person.PersonID = dbo.Account.EmployeeID INNER JOIN
                      dbo.PersonName ON dbo.Person.CurrentNameID = dbo.PersonName.PersonNameID INNER JOIN
                      dbo.MLSValue ON dbo.PersonName.LastNameID = dbo.MLSValue.MLSID
                      where  dbo.MLSValue.Value like N'" + keyword + @"%' and Account.AccountDiscriminator=2
                      and EmployerID=" + employer.EmployerID + @"                     
                        )
                       ";
            }
            else
            {
                query = @"select * from Account where AccountID in(
                        SELECT     dbo.Account.AccountID
                        FROM         dbo.Person INNER JOIN
                      dbo.Account ON dbo.Person.PersonID = dbo.Account.EmployeeID INNER JOIN
                      dbo.PersonName ON dbo.Person.CurrentNameID = dbo.PersonName.PersonNameID INNER JOIN
                      dbo.MLSValue ON dbo.PersonName.LastNameID = dbo.MLSValue.MLSID
                    inner join EmployeeInfo  on Account.AccountID=EmployeeInfo.AccountID
                      where  dbo.MLSValue.Value like N'" + keyword + @"%' and Account.AccountDiscriminator=2
                      and EmployerID=" + employer.EmployerID + @"  
                      and EmployeeInfo.DivisionCode='" + divisionCode + @"'         
                        )
                       ";
            }
        }
        else
        {
            if (divisionCode == null || divisionCode.Equals("-All Division-"))
            {
                query = @"  select * from Account inner join EmployeeInfo on EmployeeInfo.EmployeeInfoID = Account.CurrentEmployeeInfoID
                        where Account.AccountDiscriminator = 2 and EmployeeInfo.EmployeeNo like N'" + keyword + @"%'
                         and EmployerID=" + employer.EmployerID + @"
                        ";
            }
            else
            {
                query = @"   select Account.* 
                      from Account              
                      inner join EmployeeInfo  on Account.AccountID=EmployeeInfo.AccountID   
                      and  EmployeeInfo.EmployeeInfoID = Account.CurrentEmployeeInfoID  
                        where Account.AccountDiscriminator = 2 and EmployeeInfo.EmployeeNo like N'" + keyword + @"%'
                         and EmployerID=" + employer.EmployerID + @"
                            and EmployeeInfo.DivisionCode='" + divisionCode + @"'   
                        ";
            }
        }
        string terminationCondition = " and dbo.Account.TerminationInfoID is not null ";

        if (TerminationStatus.Equals(EmployeeTerminatedStatus.Terminated))
        {
            query += terminationCondition;
        }
        IList <Member> results =
            iSabayaContext.PersistencySession.CreateSQLQuery(query).AddEntity("employee",
                                                                              typeof(Member)).List <Member>();

        return(results);
    }