/// <summary> /// Returns true if the provided advertisement passes the scan filter /// </summary> /// <param name="advertisement"></param> /// <returns></returns> public Boolean Passes(IBleAdvertisement advertisement) { if (m_advertisedServiceIsInList != null && m_advertisedServiceIsInList.Count > 0) { var passes = false; foreach (var guid in m_advertisedServiceIsInList) { if (advertisement.Services.Contains(guid)) { passes = true; break; } } if (!passes) { return(false); } } if (AdvertisedDeviceName != null && advertisement.DeviceName != AdvertisedDeviceName) { return(false); } if (AdvertisedManufacturerCompanyId != null && advertisement.ManufacturerSpecificData.All(x => x.CompanyId != AdvertisedManufacturerCompanyId.Value)) { return(false); } return(true); }
/// <summary> /// Returns true if the provided advertisement passes the scan filter /// </summary> /// <param name="advertisement"></param> /// <returns></returns> public Boolean Passes(IBleAdvertisement advertisement) { if (m_advertisedServiceIsInList != null && m_advertisedServiceIsInList.Count > 0 && !m_advertisedServiceIsInList.Any(guid => advertisement.Services.Contains(guid))) { return(false); } if (AdvertisedDeviceName != null && advertisement.DeviceName != AdvertisedDeviceName) { return(false); } if (AdvertisedManufacturerCompanyId != null && advertisement.ManufacturerSpecificData.All(x => x.CompanyId != AdvertisedManufacturerCompanyId.Value)) { return(false); } return(true); }
/// <summary> /// Returns true if the provided advertisement passes the scan filter /// </summary> public static Boolean Passes(this IScanFilter filter, IBleAdvertisement advertisement) { var services = filter.AdvertisedServiceIsInList; if (services != null && services.Count > 0 && !services.Any(guid => advertisement.Services.Contains(guid))) { return(false); } if (filter.AdvertisedDeviceName != null && advertisement.DeviceName != filter.AdvertisedDeviceName) { return(false); } var companyId = filter.AdvertisedManufacturerCompanyId; // ReSharper disable once ConvertIfStatementToReturnStatement if (companyId != null && advertisement.ManufacturerSpecificData.All(x => x.CompanyId != companyId.Value)) { return(false); } return(true); }