IBE.EDDN.EDDNCommunicator.SendCommodityData_i C# (CSharp) Méthode

SendCommodityData_i() private méthode

internal send routine for registered data: It's called by the delay-timer "_SendDelayTimer_Commodity"
private SendCommodityData_i ( ) : void
Résultat void
        private void SendCommodityData_i()
        {
            try
            {
                MessageHeader header;
                String schema;
                StringBuilder commodityMessage = new StringBuilder();

                // fill the header
                header = new MessageHeader()
                {
                    SoftwareName        = "ED-IBE (API)",
                    SoftwareVersion     = VersionHelper.Parts(System.Reflection.Assembly.GetExecutingAssembly().GetName().Version, 3),
                    GatewayTimestamp    = DateTime.Now.ToString("s", CultureInfo.InvariantCulture) + DateTime.Now.ToString("zzz", CultureInfo.InvariantCulture),
                    UploaderID          = UserIdentification()
                };

                // fill the schema : test or real ?
                if((m_lDBCon.getIniValue(IBE.EDDN.EDDNView.DB_GROUPNAME, "Schema", "Real", false) == "Test") || (Program.actualCondition.GameversionIsBeta))
                    schema = "http://schemas.elite-markets.net/eddn/commodity/3/test";
                else
                    schema = "http://schemas.elite-markets.net/eddn/commodity/3";

                // create full message
                commodityMessage.Append(String.Format("{{" +
                                                      " \"header\" : {0}," +
                                                      " \"$schemaRef\": \"{1}\","+
                                                      " {2}" +
                                                      "}}", 
                                                      JsonConvert.SerializeObject(header, new JsonSerializerSettings() { NullValueHandling = NullValueHandling.Ignore }),
                                                      schema,
                                                      _Send_Commodity.Dequeue().ToString()));


                using (var client = new WebClient())
                {
                    try
                    {
                        Debug.Print(commodityMessage.ToString());

                        client.UploadString("http://eddn-gateway.elite-markets.net:8080/upload/", "POST", commodityMessage.ToString());

                        m_CommoditySendingError = false;
                        DataTransmittedEvent.Raise(this, new DataTransmittedEventArgs(enTransmittedTypes.Commodity_V3, enTransmittedStates.Sent));
                    }
                    catch (WebException ex)
                    {
                        _logger.Log("Error uploading json (commodity)");
                        _logger.Log(ex.ToString());
                        _logger.Log(ex.Message);
                        _logger.Log(ex.StackTrace);
                        if (ex.InnerException != null)
                            _logger.Log(ex.InnerException.ToString());

                        using (WebResponse response = ex.Response)
                        {
                            using (Stream data = response.GetResponseStream())
                            {
                                if (data != null)
                                {
                                    StreamReader sr = new StreamReader(data);
                                    m_CommoditySendingError = true;
                                    DataTransmittedEvent.Raise(this, new DataTransmittedEventArgs(enTransmittedTypes.Commodity_V3, enTransmittedStates.Error));
                                    _logger.Log("Error while uploading commodity data to EDDN : " + sr.ReadToEnd());
                                }
                            }
                        }
                    }
                    finally
                    {
                        client.Dispose();
                    }
                }

            }
            catch (Exception ex)
            {
                _logger.Log("Error uploading Json (commodity)");
                _logger.Log(ex.ToString());
                _logger.Log(ex.Message);
                _logger.Log(ex.StackTrace);
                if (ex.InnerException != null)
                    _logger.Log(ex.InnerException.ToString());

                CErr.processError(ex, "Error in EDDN-Sending-Thread (commodity)");
            }

        }