IBE.EDDN.EDDNCommunicator.ConvertCommodityV3_To_CSVRows C# (CSharp) Method

ConvertCommodityV3_To_CSVRows() private method

private ConvertCommodityV3_To_CSVRows ( JObject commodityV3Data ) : String[]
commodityV3Data JObject
return String[]
        private String[] ConvertCommodityV3_To_CSVRows(JObject commodityV3Data)
        {
            String system;
            String starPort;
            Int32 commodityCount = 0;
            List<String> csvStrings = new List<string>();

            try
            {

                system   = commodityV3Data["message"]["systemName"].ToString();
                starPort = commodityV3Data["message"]["stationName"].ToString();

                foreach (Newtonsoft.Json.Linq.JToken commodity in commodityV3Data.SelectTokens("message.commodities[*]"))
                {                                                  
                    CsvRow csvData = new CsvRow();

                    csvData.SystemName          = system;
                    csvData.StationName         = starPort;
                    csvData.StationID           = String.Format("{0} [{1}]", starPort, system);
                    csvData.CommodityName       = commodity.Value<String>("name");
                    csvData.SellPrice           = commodity.Value<Int32>("sellPrice");
                    csvData.BuyPrice            = commodity.Value<Int32>("buyPrice");
                    csvData.Demand              = commodity.Value<Int32>("demand");
                    csvData.Supply              = commodity.Value<Int32>("stock");
                    csvData.SampleDate          = DateTime.Now;

                    if((!String.IsNullOrEmpty(commodity.Value<String>("demandBracket"))) && (commodity.Value<Int32>("demandBracket") > 0))
                        csvData.DemandLevel         = (String)Program.Data.BaseTableIDToName("economylevel", commodity.Value<Int32>("demandBracket") - 1, "level");
                    else
                        csvData.DemandLevel = null;

                    if((!String.IsNullOrEmpty(commodity.Value<String>("stockBracket"))) && (commodity.Value<Int32>("stockBracket") > 0))
                        csvData.SupplyLevel         = (String)Program.Data.BaseTableIDToName("economylevel", commodity.Value<Int32>("stockBracket") - 1, "level");
                    else
                        csvData.SupplyLevel = null;

                    csvData.SourceFileName      = "";
                    csvData.DataSource          = "";

                    csvStrings.Add(csvData.ToString());

                    commodityCount++;
                } 
                
                return csvStrings.ToArray();

            }
            catch (Exception ex)
            {
                throw new Exception("Error while converting commodity v3 data to csv rows", ex);
            }
        }