//Get group details with contact count
 public static GroupDTO GetByIdWithContactCount(int Id)
 {
     try
     {
         UnitOfWork uow      = new UnitOfWork();
         Group      Group    = uow.GroupRepo.GetById(Id, true);
         GroupDTO   GroupDTO = Transform.GroupToDTO(Group);
         GroupDTO.ContactCount = GroupContactService.GetGroupIdWiseContactsCount(Id, "");// Group.Contacts.Count();
         return(GroupDTO);
     }
     catch
     {
         throw;
     }
 }
        //get group list by client id
        public static List <GroupDTO> GetGroupListByClientIdForCampaign(int ClientId)
        {
            List <GroupDTO> GroupDTOList = new List <GroupDTO>();

            try
            {
                using (var uow = new UnitOfWork())
                {
                    IEnumerable <Group> Group = uow.GroupRepo.GetAll().Where(e => e.ClientID == ClientId).OrderBy(e => e.Name).ToList();
                    if (Group != null)
                    {
                        GroupDTO GroupDTOAllContact = new GroupDTO();
                        GroupDTOAllContact.Id   = 0;
                        GroupDTOAllContact.Name = "All Contacts";
                        string ReceipentsNumber  = ContactService.GetAllReceipentNumberByClientId(ClientId);
                        int    TotalContactCount = CommonService.GetRecipientsCount(ReceipentsNumber);
                        GroupDTOAllContact.ContactCount = TotalContactCount;
                        GroupDTOList.Add(GroupDTOAllContact);

                        foreach (var item in Group)
                        {
                            GroupDTO GroupDTO = new GroupDTO();
                            GroupDTO = Transform.GroupToDTO(item);
                            Group objGroup = uow.GroupRepo.GetById(item.Id);//, true
                            //GroupContactDTO GroupContactDTO = new GroupContactDTO();
                            //GroupContactDTO = GetGroupContactById(GroupDTO.Id);
                            List <ContactDTO> ContactDTO = new List <ContactDTO>();
                            int ContactCount             = GroupContactService.GetGroupIdWiseContactsCount(objGroup.Id, "");

                            GroupDTO.ContactCount = ContactCount;// objGroup.Contacts.Count();//GroupContactDTO.Contacts.Count(); //
                            GroupDTOList.Add(GroupDTO);
                        }
                    }
                }



                return(GroupDTOList);
            }
            //catch (LoggedInUserException)
            //{
            //    throw new System.TimeoutException();
            //}
            catch (Exception ex)
            {
                throw;
            }
        }