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);
}
}