public static string GetClearDescription(FullRgItem item) { var description = item?.Description; if (item == null || description == null) { return(string.Empty); } var descriptionTextBuilder = new StringBuilder(); descriptionTextBuilder.Append($"Amount: {item.Asset.Amount}{Environment.NewLine}"); descriptionTextBuilder.Append($"Game: {description.Appid}{Environment.NewLine}"); if (description.Type.EndsWith("Trading Card")) { var appid = GetClearCardAppid(description.MarketHashName); descriptionTextBuilder.Append($"Set: {SetsHelper.GetSetsCount(appid, UiGlobalVariables.SteamManager.Proxy)}{Environment.NewLine}"); } descriptionTextBuilder.Append($"Name: {description.MarketHashName}{Environment.NewLine}"); descriptionTextBuilder.Append($"Type: {description.Type}{Environment.NewLine}"); var descriptions = description.Descriptions?.Where(d => !string.IsNullOrWhiteSpace(d.Value.Trim())).ToArray(); if (descriptions != null && descriptions.Any()) { var descriptionText = string.Join(", ", descriptions.Select(d => d.Value.Trim())); descriptionTextBuilder.Append($"Description: {descriptionText}{Environment.NewLine}"); } var tags = description.Tags?.Where(t => !string.IsNullOrWhiteSpace(t.LocalizedTagName.Trim())).ToArray(); if (tags != null && tags.Any()) { var tagsText = string.Join(", ", tags.Select(t => t.LocalizedTagName.Trim())); descriptionTextBuilder.Append($"Tags: {tagsText}{Environment.NewLine}"); } return(descriptionTextBuilder.ToString()); }
public static string GetClearType(FullRgItem item) { return(GetClearType(item.Description.Type)); }
public async Task <double?> GetPrice(FullRgItem item, SteamManager manager) { var itemName = item.Description.Name; double?price = null; switch (this.MarketSaleType) { case EMarketSaleType.LowerThanCurrent: price = PriceLoader.PriceLoader.CurrentPricesCache.Get(item.Description.MarketHashName)?.Price; if (!price.HasValue) { price = await manager.GetCurrentPrice(item.Asset.Appid, item.Description.MarketHashName); PriceLoader.PriceLoader.CurrentPricesCache.Cache( item.Description.MarketHashName, (double)price); } Program.WorkingProcessForm.AppendWorkingProcessInfo($"Current price for '{itemName}' is {price}"); price = this.HandleChangeValue(price); break; case EMarketSaleType.LowerThanAverage: price = PriceLoader.PriceLoader.AveragePricesCache.Get(item.Description.MarketHashName)?.Price; if (!price.HasValue) { price = manager.GetAveragePrice( item.Asset.Appid, item.Description.MarketHashName, SavedSettings.Get().SettingsAveragePriceParseDays); if (price != null) { PriceLoader.PriceLoader.AveragePricesCache.Cache( item.Description.MarketHashName, (double)price); } } price = this.HandleChangeValue(price); Program.WorkingProcessForm.AppendWorkingProcessInfo($"Average price for '{itemName}' is {price}"); break; case EMarketSaleType.Recommended: var currentPrice = PriceLoader.PriceLoader.CurrentPricesCache.Get(item.Description.MarketHashName)?.Price; if (!currentPrice.HasValue) { currentPrice = await manager.GetCurrentPrice(item.Asset.Appid, item.Description.MarketHashName); PriceLoader.PriceLoader.CurrentPricesCache.Cache( item.Description.MarketHashName, (double)currentPrice); } var averagePrice = PriceLoader.PriceLoader.AveragePricesCache.Get(item.Description.MarketHashName)?.Price; if (!averagePrice.HasValue) { averagePrice = manager.GetAveragePrice( item.Asset.Appid, item.Description.MarketHashName, SavedSettings.Get().SettingsAveragePriceParseDays); if (averagePrice != null) { PriceLoader.PriceLoader.AveragePricesCache.Cache( item.Description.MarketHashName, (double)averagePrice); } } if (averagePrice > currentPrice) { price = averagePrice; } else if (currentPrice >= averagePrice) { price = currentPrice - 0.01; } if (!price.HasValue || price <= 0 || price == double.NaN) { price = null; } Program.WorkingProcessForm.AppendWorkingProcessInfo($"Current price for '{itemName}' is {currentPrice}"); Program.WorkingProcessForm.AppendWorkingProcessInfo($"Average price for '{itemName}' is {averagePrice}"); break; } return(price); }