Example #1
0
        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());
        }
Example #2
0
 public static string GetClearType(FullRgItem item)
 {
     return(GetClearType(item.Description.Type));
 }
Example #3
0
        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);
        }