IBE.EDDB_Data.EDStation.addListing C# (CSharp) Method

addListing() public method

adds a record to the pricelistings of this station
public addListing ( CsvRow Csv_Row, Int32>.Dictionary &foundCommodityCache ) : void
Csv_Row IBE.Enums_and_Utility_Classes.CsvRow
foundCommodityCache Int32>.Dictionary
return void
        public void addListing(CsvRow Csv_Row, ref Dictionary<string,Int32> foundCommodityCache)
        {
            SQL.Datasets.dsEliteDB.tbcommoditylocalizationRow[] CommodityRow;
            Int32 CommodityID = 0;
            Boolean known = false;

            try
            {
                if(foundCommodityCache != null)
                {
                    if (!foundCommodityCache.TryGetValue(Csv_Row.CommodityName, out CommodityID)) 
                    {
                        CommodityRow = (SQL.Datasets.dsEliteDB.tbcommoditylocalizationRow[])Program.Data.BaseData.tbcommoditylocalization.Select(
                                            String.Format("locname = '{0}'", SQL.DBConnector.DTEscape(Csv_Row.CommodityName)));

                        if(CommodityRow.GetUpperBound(0) >= 0)
                        { 
                            CommodityID = (Int32)CommodityRow[0].commodity_id;

                            foundCommodityCache.Add(Csv_Row.CommodityName, CommodityID);

                            known = true;
                        }
                    }
                    else
                        known = true;
                }
                else
                { 
                    CommodityRow = (SQL.Datasets.dsEliteDB.tbcommoditylocalizationRow[])Program.Data.BaseData.tbcommoditylocalization.Select(
                                        String.Format("locname = '{0}'", SQL.DBConnector.DTEscape(Csv_Row.CommodityName)));

                    if(CommodityRow.GetUpperBound(0) >= 0)
                    { 
                        CommodityID = (Int32)CommodityRow[0].commodity_id;
                        known = true;
                    }

                }
                
                if(known)
                { 
                    ListingExtendMode       = true;
                    Listing newListing      = new Listing();

                    newListing.StationId    = this.Id;
                    newListing.CommodityId  = CommodityID;
                    newListing.Supply       = (Int32)Csv_Row.Supply;
                    newListing.SupplyLevel  = Csv_Row.SupplyLevel.Trim() == "" ? null : Csv_Row.SupplyLevel;
                    newListing.BuyPrice     = (Int32)Csv_Row.BuyPrice;
                    newListing.SellPrice    = (Int32)Csv_Row.SellPrice;
                    newListing.Demand       = (Int32)Csv_Row.Demand;
                    newListing.DemandLevel  = Csv_Row.DemandLevel.Trim() == "" ? null : Csv_Row.DemandLevel;
                    newListing.CollectedAt  =  new System.DateTimeOffset(Csv_Row.SampleDate).ToUnixTimeSeconds();
                    newListing.DataSource   = Csv_Row.DataSource;

                    newListing.UpdateCount  = -1;

                    Listings[currentIndex+1] = newListing;
                    currentIndex++;
                }
            }            
            catch (Exception ex)
            {
                throw new Exception("Error while adding a record to the pricelistings", ex);
            }
        }

Same methods

EDStation::addListing ( Listing listingRow ) : void