public int Compare(object ob1, object ob2) { CalculateStationTradeModel x = (CalculateStationTradeModel)ob1; CalculateStationTradeModel y = (CalculateStationTradeModel)ob2; switch (columnName) { case "item": return(StaticMethods.compareString(x.item, y.item, sortDirection)); case "buy_price": return(StaticMethods.compareDecimal(x.buy_price, y.buy_price, sortDirection)); case "sell_price": return(StaticMethods.compareDecimal(x.sell_price, y.sell_price, sortDirection)); case "spread_isk": return(StaticMethods.compareDecimal(x.spread_isk, y.spread_isk, sortDirection)); case "spread_percent": return(StaticMethods.compareDecimal(x.spread_percent, y.spread_percent, sortDirection)); default: return(1); } }
public CalculateStationTradeModel TradePrepare(int TypeID, string itemName, string itemVolume, FormattedTradesModel formattedTrades) { TradePerStation sellPerStation = formattedTrades.sell_per_station; TradePerStation buyPerStation = formattedTrades.buy_per_station; hasSell = formattedTrades.has_sell; hasBuy = formattedTrades.has_buy; if (hasBuy && hasSell) { for (int i = 0; i < sellPerStation.station_ids.Count; i++) { if (filters.selected_station_trading_station_id.Equals(sellPerStation.station_ids[i]) && sellPerStation.trades[i].Count > 0) { List <SingleTradeModel> sellTrades = sellPerStation.trades[i]; buyPrice = sellTrades[0].Price; // this is now the price at which I will buy buyPrice = buyPrice + (buyPrice * filters.user_brokers_fee); for (int j = 0; j < buyPerStation.station_ids.Count; j++) { if (filters.selected_station_trading_station_id.Equals(buyPerStation.station_ids[i]) && buyPerStation.trades[j].Count > 0) { List <SingleTradeModel> buyTrades = buyPerStation.trades[j]; sellPrice = buyTrades[0].Price; // this is now the price at which I will sell sellPrice = sellPrice - (sellPrice * (filters.user_brokers_fee + filters.user_sales_tax) / 100); if (buyPrice < sellPrice) { CalculateStationTradeModel newTrade = new CalculateStationTradeModel(); newTrade.item = itemName; newTrade.buy_price = buyPrice; newTrade.sell_price = sellPrice; newTrade.spread_isk = sellPrice - buyPrice; newTrade.spread_percent = newTrade.spread_isk / sellPrice * 100; newTrade.link = "https://evemarketer.com/types/" + TypeID.ToString(); return(newTrade); } } } } } } return(null); }
public ObservableCollection <CalculateStationTradeModel> DoWork(IProgress <DownloadProgressReportModel> progress, CancellationToken cancellationToken, List <FormattedTradesModel> formatedTrades) { List <string[]> filteredItems = StaticMethods.GetFilteredItems(); int totalItems = filteredItems.Count; if (formatedTrades.Count < totalItems) { totalItems = formatedTrades.Count; } filters = SqliteDataAccess.LoadItemFilters(); allStations = StaticMethods.GetAllStations(); ObservableCollection <CalculateStationTradeModel> cTrades = new ObservableCollection <CalculateStationTradeModel>(); long startTime = DateTimeOffset.Now.ToUnixTimeSeconds(); for (int i = 0; i < totalItems; i++) { cancellationToken.ThrowIfCancellationRequested(); int type_id = Int32.Parse(filteredItems[i][0]); if (formatedTrades[i].type_id == type_id) { CalculateStationTradeModel temp = TradePrepare(type_id, filteredItems[i][1], filteredItems[i][2], formatedTrades[i]); if (temp != null) { cTrades.Add(temp); } } int progressPercentage = Convert.ToInt32(((double)i / filteredItems.Count) * 100); DownloadProgressReportModel report = new DownloadProgressReportModel(); report.PercentageComplete = progressPercentage; report.MessageRemaining = "Step 2/2: Calculating data" + StaticMethods.EstimatedTime(startTime, i, totalItems); progress.Report(report); } return(cTrades); }