/// <summary>
    /// This function add Client Contacts to group
    /// </summary>
    /// <param name="gr"></param>   
    /// <returns></returns>
    public int AddClientContactsToGroup(ClientContactAddToGroup gr)
    {
        var context = new dbDataContext();
        // check for the group
        if (gr.Group.GroupId == 0 && !string.IsNullOrEmpty(gr.Group.Name.Trim()))
        {
            //create new group
            var group = new tbl_Group
             {
                 UserId = gr.Group.UserId,
                 CreatedDate = DateTime.Now,
                 IsPublic = gr.Group.IsPublic,
                 Name = gr.Group.Name.Trim()
             };
            context.tbl_Groups.InsertOnSubmit(group);
            context.SubmitChanges();
            gr.Group.GroupId = group.GroupId;
        }
        else if (gr.Group.GroupId == 0)
            return -1;

        //add client and contacts 
        if (!string.IsNullOrEmpty(gr.SelectedIds))
        {
            //If selected Ids were passed
            foreach (var id in gr.SelectedIds.Split(new[] { "," }, StringSplitOptions.RemoveEmptyEntries))
            {
                var contactId = int.Parse(id);
                var contactCount =
                    context.tbl_CandidateGroups.Count(t => t.GroupId == gr.Group.GroupId && t.CandidateId == contactId);
                if (contactCount == 0)
                {
                    var clientContactGroup = new tbl_CandidateGroup
                    {
                        CandidateId = contactId,
                        GroupId = gr.Group.GroupId
                    };
                    context.tbl_CandidateGroups.InsertOnSubmit(clientContactGroup);
                    context.SubmitChanges();
                }
            } 
        }
        else
        {
            //use stored procedure to insert contacts/clients
            var filters = gr.Filter;
            // setup the parameters
            SqlParameter[] parameters = {
	                       new SqlParameter("@GroupToAdd", gr.Group.GroupId), 
                           new SqlParameter("@ConsultantId", filters.ConsultantId),
                           new SqlParameter("@UserId", filters.UserId),
                           new SqlParameter("@ClientId", filters.ClientId ),
                           new SqlParameter("@ContactStatuses", filters.ContactStatusIds),
                           new SqlParameter("@ClientStatuses", filters.ClientStatusIds),
                           new SqlParameter("@Client", filters.Client),
                           new SqlParameter("@Forename", filters.Forename),
                           new SqlParameter("@Surname", filters.Surname),
                           new SqlParameter("@Email", filters.Email),
                           new SqlParameter("@JobTitle", filters.JobTitle),   
                           new SqlParameter("@Employer", filters.Employer),
	                       new SqlParameter("@Sectors", filters.Sectors),
	                       new SqlParameter("@Locations", filters.Locations), 
                           new SqlParameter("@Qualifications", filters.Qualifications),
	                       new SqlParameter("@Skills", filters.Skills),
	                       new SqlParameter("@MinSalary", filters.MinSalary),
	                       new SqlParameter("@MaxSalary", filters.MaxSalary),
	                       new SqlParameter("@Keyword", filters.Keyword),
	                       new SqlParameter("@SortBy", filters.SortBy), 
	                       new SqlParameter("@Deleted" ,filters.Deleted),	
	                       new SqlParameter("@LastUpdatedDateFrom" ,filters.LastUpdatedDateFrom),
	                       new SqlParameter("@LastUpdatedDateTo", filters.LastUpdatedDateTo),
	                       new SqlParameter("@VacancyType" ,filters.VacancyType),
                           new SqlParameter("@Hours" ,filters.Hours), 
                           new SqlParameter("@GroupId" ,filters.GroupId),
                           new SqlParameter("@LocationRadius" ,filters.LocationRadius),
	                       new SqlParameter("@RetrieveType",filters.RetrieveType)
            };
            // setup the connection
            var conn = new Sql_DataAccess(_connString);
            //execute th stored procedure
            conn.GetDataSetFromSP("AddClientsContactsToGroupsByFilter", parameters); 
        } 
        return gr.Group.GroupId;
    }
 public int AddClientContactsForGroup(ClientContactAddToGroup data)
 {
     return new CandidateGroups().AddClientContactsToGroup(data);
 }