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

SendShipyardData_i() private méthode

internal send routine for registered data: It's called by the delay-timer "_SendDelayTimer_Commodity"
private SendShipyardData_i ( ) : void
Résultat void
        private void SendShipyardData_i()
        {
            try
            {
                MessageHeader header;
                String schema;
                StringBuilder shipyardMessage = 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/shipyard/2/test";
                else
                    schema = "http://schemas.elite-markets.net/eddn/shipyard/2";

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


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

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

                            m_ShipyardSendingError   = false;
                            DataTransmittedEvent.Raise(this, new DataTransmittedEventArgs(enTransmittedTypes.Shipyard_V1, enTransmittedStates.Sent));
                        }
                        catch (WebException ex)
                        {
                            _logger.Log("Error uploading json (shipyard)");
                            _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_ShipyardSendingError   = true;
                                        DataTransmittedEvent.Raise(this, new DataTransmittedEventArgs(enTransmittedTypes.Shipyard_V1, enTransmittedStates.Error));
                                        _logger.Log("Error while uploading outfitting data to EDDN : " + sr.ReadToEnd());
                                    }
                                }
                            }
                        }
                        finally
                        {
                            client.Dispose();
                        }
                    }
                } while (_Send_Shipyard.Count > 0);
            }
            catch (Exception ex)
            {
                _logger.Log("Error uploading Json (shipyard)");
                _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 (shipyard)");
            }

        }