public static void InitiatePingMeterRequest(List <string> meterList)
        {
            try
            {
                if (meterList != null)
                {
                    if (meterList.Count > 0)
                    {
                        _log.Debug("Sending ping request...");
                        //Send meters to OD Web services to request ping action
                        MultiSpeakMsgHeader multispeakHeader = new MultiSpeakMsgHeader();
                        multispeakHeader.UserID = userName;
                        multispeakHeader.Pwd    = password;

                        MultiSpeakService multiSpeakService = new MultiSpeakService();
                        multiSpeakService.MultiSpeakMsgHeaderValue = multispeakHeader;

                        errorObject[] errors = new errorObject[0];

                        //Send ping request
                        errors = multiSpeakService.InitiateOutageDetectionEventRequest(meterList, System.DateTime.Now, url, "InitiateOutageDetectionEventRequest");
                    }
                }
            }
            catch (Exception e)
            {
                _log.Error("Failed to initiate a request to ping meters. The error message : " + e.Message + " OD_Server_Client::InitiatePingMeterRequest");
            }
        }
Beispiel #2
0
 /// <summary>
 /// Logs the request - quick hack to keep up with data for referencing the requests sent.
 /// </summary>
 /// <param name="meters">Meters.</param>
 /// <param name="header">Header.</param>
 private static void LogRequest(meterID[] meters, MultiSpeakMsgHeader header)
 {
     StdOut("Company : " + header.Company);
     StdOut("UserID : " + header.UserID);
     StdOut("Pwd : " + header.Pwd);
     StdOut("AppName : " + header.AppName);
     foreach (var meter in meters)
     {
         StdOut("********** Meter List **********");
         StdOut("meterNo : " + meter.meterNo);
         StdOut("objectID : " + meter.objectID);
         StdOut("serviceType : " + meter.serviceType.ToString());
         StdOut("serviceTypeSpecified : " + meter.serviceTypeSpecified.ToString());
         StdOut("utility : " + meter.utility);
         StdOut("Value : " + meter.Value);
     }
 }
Beispiel #3
0
        /// <summary>
        /// Initiates the meter readings by meter identifier.
        /// </summary>
        /// <param name="messages">Messages.</param>
        public static void InitiateMeterReadingsByMeterID(int messages)
        {
            var wallTime = new System.Diagnostics.Stopwatch();
            var client   = new MDM_Server();

            client.Url = "https://10.87.1.95/MultiSpeak/416/1/MDM_Server.asmx";
            StdOut(client.Url);

            //Add the security - once for the entire batch
            var header = new MultiSpeakMsgHeader {
                Company = "Spacely's Sprockets",
                UserID  = "niscmr",
                Pwd     = "niscmr",
                AppName = "TestApp for HAProxy"
            };

            client.MultiSpeakMsgHeaderValue = header;

            for (int i = 0; i < messages; i++)
            {
                try {
                    StdOut("********** NEW MESSAGE **********");
                    wallTime.Restart();
                    // Add fake meters
                    meterID[] meters =
                    {
                        new meterID {
                            meterNo              = "0",
                            objectID             = i.ToString(),
                            serviceType          = serviceType.Electric,
                            serviceTypeSpecified = true,
                            utility              = i + "_HA_Test",
                            //Value = "What is this for?"
                        }
                    };
                    LogRequest(meters, header);

                    string responseURL = "http://10.86.1.31/Simulators/MultiSpeak/416/MDM_Server.asmx";
                    //Where we send the results, need a test url for this...
                    //responseURL = "";  //Test this for empty url and error to be returned.
                    string transactionID = i.ToString();                     //Guid.NewGuid().ToString();
                    var    lifespan      = new expirationTime {
                        units = timeUnits.Hours,
                        Value = 1
                    };

                    //self-signed cert override
                    ServicePointManager.ServerCertificateValidationCallback = delegate(
                        object obj, X509Certificate certificate, X509Chain chain,

                        SslPolicyErrors errors) {
                        return(true);
                    };

                    var results = client.InitiateMeterReadingsByMeterID(meters, responseURL, transactionID, lifespan);

                    if (results != null)
                    {
                        foreach (var result in results)
                        {
                            StdOut("errorString\t: " + result.errorString);
                            StdOut("eventTime \t: " + result.eventTime);
                            StdOut("eventTimeSpecified \t: " + result.eventTimeSpecified);
                            StdOut("nounType \t: " + result.nounType);
                            StdOut("objectID \t: " + result.objectID);
                            StdOut("Value \t: " + result.Value);
                        }
                    }
                    //System.Threading.Thread.Sleep(1000);
                    wallTime.Stop();
                    StdOut("Wall Time | " + wallTime.Elapsed);
                    StdOut("********** END MESSAGE **********");
                } catch (Exception ex) {
                    StdOut("Exception TransactionID | (" + i + ") | " + ex.Message);
                    if (ex.InnerException != null)
                    {
                        StdOut("InnerException TransactionID | (" + i + ") | " + ex.Message);
                    }
                    wallTime.Stop();
                    StdOut("Wall Time | " + wallTime.Elapsed);
                    StdOut("********** END MESSAGE **********");
                }
            }             //end of loop
        }