public List<Cog.MLIAD.BusinessLogic.Associate.Associate> SearchAssociate(Associate.Associate associate, int pageIndex, int pageSize, ref int? count)
        {
            using (AssociateConnDataContext asscon = new AssociateConnDataContext())
            {
                try
                {
                    int AssociateID = Convert.ToInt32(associate.AssociateID);
                    var associates = (from a in asscon.SearchAssociate(AssociateID, associate.DesignationID, associate.FirstName, associate.LastName, associate.ProjectID, associate.LocationID, ref count)
                                      select new Cog.MLIAD.BusinessLogic.Associate.Associate()
                                      {
                                          AssociateID = a.AssociateID,
                                          FirstName = (a.FirstName == null) ? "" : a.FirstName,
                                          LastName = (a.LastName == null) ? "" : a.LastName,
                                          Mobile = (a.Mobile == null) ? "" : a.Mobile,
                                          email = (a.email == null) ? "" : a.email,
                                          DirectReportID = a.DirectReportID,
                                          IsActive = (a.IsActive == null) ? false : a.IsActive,
                                          IsApproved = a.IsApproved,
                                          ModifiedBy = (a.ModifiedBy == null) ? 0 : a.ModifiedBy,
                                          ModifiedOn = (a.ModifiedOn == null) ? null : a.ModifiedOn,
                                          DOJ = (a.DOJ == null) ? "" : a.DOJ,
                                          DOB = (a.DOB == null) ? "" : a.DOB,
                                          ProjectName = (a.ProjectName == null) ? "" : a.ProjectName,
                                          Location = (a.Location == null) ? "" : a.Location,
                                          Designation = (a.Designation == null) ? "" : a.Designation,
                                          UserID = (a.UserId == null) ? "" : a.UserId
                                      }).ToList<Cog.MLIAD.BusinessLogic.Associate.Associate>();

                    List<Cog.MLIAD.BusinessLogic.Associate.Associate> list = new List<Cog.MLIAD.BusinessLogic.Associate.Associate>();
                    list = associates;

                    pageSize = (pageSize < 1 ? 10 : pageSize);
                    pageIndex = (pageIndex < 0 ? 0 : pageIndex);
                    count = list.Count;
                    if (count < pageSize)
                    {
                        pageIndex = 0;
                        return list;
                    }
                    else if (list.Count < pageSize * pageIndex)
                    {
                        pageIndex = 0;
                        return new List<BusinessLogic.Associate.Associate>(list.Take(pageSize));
                    }
                    else
                    {
                        int a = Convert.ToInt32(((count - pageSize * pageIndex) >= pageSize) ? pageSize : (count - pageSize * pageIndex));
                        return new List<BusinessLogic.Associate.Associate>(list.Skip(pageSize * pageIndex).Take(a));
                    }

                    //foreach (var asct in associates)
                    //{
                    //    var address = (from add in asscon.Search_Address(asct.AssociateID)
                    //                     select new Cog.MLIAD.BusinessLogic.Associate.Address()
                    //                     {
                    //                         Address1=add.Address1,
                    //                         Address2=add.Address2,
                    //                         Address3=add.Address3,
                    //                         City=add.City,
                    //                         State=add.State,
                    //                         Country=add.Country,
                    //                         Zip=add.Zip,
                    //                         AddressTypeID=add.AddressTypeID
                    //                     }).ToList<Cog.MLIAD.BusinessLogic.Associate.Address>();
                    //    asct.Address = address;
                    //    var Phone = (from phn in asscon.Search_Phone(asct.AssociateID)
                    //                 select new Cog.MLIAD.BusinessLogic.Associate.Phone()
                    //                 {
                    //                     PhoneNo=phn.Phone,
                    //                     PhoneTypeID =Convert.ToInt32(phn.PhoneTypeID)
                    //                 }).ToList<Cog.MLIAD.BusinessLogic.Associate.Phone>();
                    //    asct.Phones = Phone;
                    //    list.Add(asct);
                    //}
                }
                catch (Exception ex)
                {
                    throw ex;
                }
            }
        }