public XmlRpcResponse GenericNotify(XmlRpcRequest request, IPEndPoint ep) { XmlRpcResponse r = new XmlRpcResponse(); try { Hashtable requestData = (Hashtable)request.Params[0]; Hashtable communicationData = (Hashtable)request.Params[1]; m_log.Debug("[OMECONOMY]: genericNotify(...)"); foreach (DictionaryEntry requestDatum in requestData) { m_log.Debug("[OMECONOMY]: " + requestDatum.Key.ToString() + " " + (string)requestDatum.Value); } foreach (DictionaryEntry communicationDatum in communicationData) { m_log.Debug("[OMECONOMY]: " + communicationDatum.Key.ToString() + " " + (string)communicationDatum.Value); } String method = (string)requestData["method"]; requestData.Remove("method"); if (CommunicationHelpers.ValidateRequest(communicationData, requestData, gatewayURL)) { switch (method) { case "notifyUser": r.Value = userInteract(requestData); break; case "writeLog": r.Value = WriteLog(requestData); break; case "notifyIsAlive": r.Value = IsAlive(requestData); break; default: m_log.ErrorFormat("[OMECONOMY]: Method {1} is not supported.", Name, method); break; } } else { throw new Exception("Hash values do not match"); } } catch (Exception e) { m_log.ErrorFormat("[OMECONOMY]: genericNotify() Exception: {1} - {2}", Name, e.Message, e.StackTrace); r.SetFault(1, "Could not parse the requested method"); } return(r); }
public XmlRpcResponse GenericNotify(XmlRpcRequest request, IPEndPoint ep) { XmlRpcResponse r = new XmlRpcResponse(); try { Hashtable requestData = m_communication.ValidateRequest(request); if (requestData != null) { string method = (string)requestData["method"]; switch (method) { case "notifyUser": r.Value = UserInteract(requestData); break; case "writeLog": r.Value = WriteLog(requestData); break; case "notifyIsAlive": r.Value = IsAlive(requestData); break; default: m_log.ErrorFormat("[{0}]: Method {1} is not supported.", Name, method); break; } } else { r.SetFault(1, "Could not validate the request"); } } catch (Exception e) { m_log.ErrorFormat("[{0}]: genericNotify() Exception: {1} - {2}", Name, e.Message, e.StackTrace); r.SetFault(1, "Could not parse the requested method"); } return(r); }