public PetsEntity[] GetCompanyPets(int id, int clientId = 0) { List <PetsEntity> arrayOfPetsEntity = new List <PetsEntity>(); ClientsController controller = new ClientsController(); Petz_dbEntities db = new Petz_dbEntities(); int[] idsByService = (from s in db.petz_Pet_Scheduling join a in db.petz_Company_Address on s.company_address_id equals a.company_address_id where a.company_id == id && s.date_delete == null && s.client_id == (clientId <= 0 ? s.client_id : clientId) select s.client_id) .Distinct() .ToArray(); int[] idsByFavorite = db.petz_Client_Company .Where(x => x.company_id == id && x.client_id == (clientId <= 0 ? x.client_id : clientId)) .Select(x => x.client_id) .Distinct() .ToArray(); int[] ids = idsByService.Concat(idsByFavorite) .Distinct() .ToArray(); foreach (int i in ids) { arrayOfPetsEntity.AddRange(controller.GetPetsClient(i)); } return(arrayOfPetsEntity.ToArray()); }