/// <remarks/> public System.IAsyncResult BegindoDeviceSubscriptionConfiguration(DeviceSubscriptionConfiguration DeviceSubscriptionConfiguration, System.AsyncCallback callback, object asyncState) { doDeviceSubscriptionConfigurationRequest inValue = new doDeviceSubscriptionConfigurationRequest(); inValue.DeviceSubscriptionConfiguration = DeviceSubscriptionConfiguration; return(((SNSR_STDSOAPPort)(this)).BegindoDeviceSubscriptionConfiguration(inValue, callback, asyncState)); }
private void HandleSubscriptionRequest(DeviceSubscriptionConfiguration subscription) { string name = subscription.RequestorIdentification; // if message is invalid - throw if (!ValidateMessages || subscription.IsValid(out var ex)) { // notify message MessageReceived?.BeginInvoke(subscription, name, null, null); // if client is registered if (!ValidateClients || _marsClients.ContainsKey(name)) { // if subscription has any values if (subscription.SubscriptionType != null && subscription.SubscriptionType.Length > 0) { _marsClients[name].LastConnectionTime = DateTime.Now; _marsClients[name].SubscriptionTypes = subscription.SubscriptionType; SendFullDeviceStatusReport(name); } else { // unsubscribe _marsClients.Remove(name); } } } else { ValidationErrorOccured?.BeginInvoke(this, new InvalidMessageException(subscription, ex), null, null); } }
private Task HandleSubscriptionRequest(DeviceSubscriptionConfiguration subscription) { string name = subscription.RequestorIdentification; // if message is invalid - throw if (!ValidateMessages || subscription.IsValid(out var ex)) { // notify message MessageReceived?.Invoke(subscription, name); // if client is registered if (!ValidateClients || _marsClients.ContainsKey(name)) { // if subscription has any values if (subscription.SubscriptionType != null && subscription.SubscriptionType.Length > 0) { _marsClients[name].LastConnectionTime = DateTime.Now; _marsClients[name].SubscriptionTypes = subscription.SubscriptionType; return(SendFullDeviceStatusReport(name)); } // unsubscribe _marsClients[name].SocketSession.CloseAsync(); _marsClients.Remove(name); } return(Task.CompletedTask); } ValidationErrorOccured?.Invoke(this, new InvalidMessageException(subscription, ex)); return(Task.CompletedTask); }
/// <remarks/> public void doDeviceSubscriptionConfiguration(ref DeviceSubscriptionConfiguration DeviceSubscriptionConfiguration) { doDeviceSubscriptionConfigurationRequest inValue = new doDeviceSubscriptionConfigurationRequest(); inValue.DeviceSubscriptionConfiguration = DeviceSubscriptionConfiguration; doDeviceSubscriptionConfigurationResponse retVal = ((SNSR_STDSOAPPort)(this)).doDeviceSubscriptionConfiguration(inValue); DeviceSubscriptionConfiguration = retVal.DeviceSubscriptionConfiguration; }
internal void HandleSubscriptionRequest(DeviceSubscriptionConfiguration request) { if (request == null) { return; } // get requestor name string name = request.RequestorIdentification; SubscriptionTypeType[] subscribeTypes = request.SubscriptionType; // add mars name to subscribed list if (_marsClients.ContainsKey(name)) { // update connection watch to this mars _marsClients[name].LastConnectionTime = DateTime.Now; // if unsubscribe request if (subscribeTypes == null || subscribeTypes.Length == 0) { lock (_syncToken) { _marsClients.Remove(name); } } else { _marsClients[name].SubscriptionTypes = subscribeTypes; } // raise the event MessageReceived?.BeginInvoke(request, name, null, null); // send full status report for the first time SendFullDeviceStatusReport(name); } else { Console.WriteLine($"Unknown Mars name ({name})"); } }
public doDeviceSubscriptionConfigurationResponse(DeviceSubscriptionConfiguration DeviceSubscriptionConfiguration) { this.DeviceSubscriptionConfiguration = DeviceSubscriptionConfiguration; }
public doDeviceSubscriptionConfigurationRequest(DeviceSubscriptionConfiguration DeviceSubscriptionConfiguration) { this.DeviceSubscriptionConfiguration = DeviceSubscriptionConfiguration; }