/// <summary> /// Validates ProbeMatches messages /// </summary> /// <param name="message">Message to be validated</param> /// <param name="reason">Reason why message is invalid</param> /// <returns>true, if message is valid</returns> protected bool ValidateProbeMatchMessage(SoapMessage <WSD.ProbeMatchesType> message, out string reason) { bool mode1 = Features.Contains(Feature.DiscoveryTypesDnNetworkVideoTransmitter); bool mode2 = Features.Contains(Feature.DiscoveryTypesTdsDevice); bool res = true; reason = null; try { //check Types namespace if (message.Object.ProbeMatch == null) { reason = Resources.ErrorNoProbeMatch_Text; return(false); } bool found = false; for (int i = 0; i < message.Object.ProbeMatch.Length; i++) { WSD.ProbeMatchType match = message.Object.ProbeMatch[i]; if (DiscoveryUtils.CheckDeviceMatchType(message, i, out reason, mode1, mode2)) { if (!ValidateProbeMatch(match, out reason)) { return(false); } found = true; break; } } if (!found) { return(false); } } catch (Exception e) { reason = e.Message; res = false; } return(res); }
/// <summary> /// Validates ProbeMatches messages /// </summary> /// <param name="message">Message to be validated</param> /// <param name="reason">Reason why message is invalid</param> /// <returns>true, if message is valid</returns> protected bool ValidateProbeMatchMessage(SoapMessage <WSD.ProbeMatchesType> message, out string reason) { bool res = true; reason = null; try { //check Types namespace if (message.Object.ProbeMatch == null) { reason = Resources.ErrorNoProbeMatch_Text; return(false); } bool found = false; for (int i = 0; i < message.Object.ProbeMatch.Length; i++) { WSD.ProbeMatchType match = message.Object.ProbeMatch[i]; if (DiscoveryUtils.CheckDeviceMatchType(message, i)) { if (!ValidateProbeMatch(match, out reason)) { return(false); } found = true; break; } } if (!found) { reason = string.Format(Resources.ErrorIncorrectTypes_Format, DiscoveryUtils.ONVIF_DISCOVER_TYPES, DiscoveryUtils.ONVIF_NETWORK_WSDL_URL); return(false); } } catch (Exception e) { reason = e.Message; res = false; } return(res); }