/// <summary> /// Gets the featured / top symbols of the specified category. /// </summary> /// <param name="category">A type of symbol</param> /// <returns><see cref="MarketCategoriesResult"/></returns> public async Task <MarketCategoriesResult> GetFeaturedSymbols( MarketCategory category) { var query = new Dictionary <string, string> { { "category", category.ToString().ToLower() } }; return(await GetResult <MarketCategoriesResult>( OpenbookUri.Markets.Category, query)); }
public void GetByID_OneItem_ReturnsMarketCategory() { // Arrange MarketCategory entity = new MarketCategory { ID = 1 }; // Act MessageHub.Instance.Publish(new OnCacheObjectSet <MarketCategory>(entity)); // Assert Assert.AreNotSame(entity, _cache.GetByID(1)); }
public void GetByID_TwoItems_ReturnsCorrectObject() { // Arrange MarketCategory entity1 = new MarketCategory { ID = 1 }; MarketCategory entity2 = new MarketCategory { ID = 2 }; // Act MessageHub.Instance.Publish(new OnCacheObjectSet <MarketCategory>(entity1)); MessageHub.Instance.Publish(new OnCacheObjectSet <MarketCategory>(entity2)); // Assert Assert.AreNotSame(entity1, _cache.GetByID(1)); Assert.AreNotSame(entity2, _cache.GetByID(2)); }
public void GetByID_RemovedItem_ReturnsCorrectObject() { // Arrange MarketCategory entity1 = new MarketCategory { ID = 1 }; MarketCategory entity2 = new MarketCategory { ID = 2 }; // Act MessageHub.Instance.Publish(new OnCacheObjectSet <MarketCategory>(entity1)); MessageHub.Instance.Publish(new OnCacheObjectSet <MarketCategory>(entity2)); MessageHub.Instance.Publish(new OnCacheObjectDeleted <MarketCategory>(entity1)); // Assert Assert.Throws <KeyNotFoundException>(() => { _cache.GetByID(1); }); Assert.AreNotSame(entity2, _cache.GetByID(2)); }
public void GetByID_NoItems_ThrowsKeyNotFoundException() { // Arrange MarketCategory entity1 = new MarketCategory { ID = 1 }; MarketCategory entity2 = new MarketCategory { ID = 2 }; // Act MessageHub.Instance.Publish(new OnCacheObjectSet <MarketCategory>(entity1)); MessageHub.Instance.Publish(new OnCacheObjectSet <MarketCategory>(entity2)); MessageHub.Instance.Publish(new OnCacheObjectDeleted <MarketCategory>(entity1)); MessageHub.Instance.Publish(new OnCacheObjectDeleted <MarketCategory>(entity2)); // Assert Assert.Throws <KeyNotFoundException>(() => { _cache.GetByID(1); }); Assert.Throws <KeyNotFoundException>(() => { _cache.GetByID(2); }); }
public static IEnumerable <ParsedItem> Parse(ItemParserSettings settings, string content) { var lines = Regex.Split(content, Environment.NewLine).Where(p => !string.IsNullOrEmpty(p)); var items = new List <ParsedItem>(); foreach (var l in lines.Skip(settings.HasHeader ? 1 : 0)) { var fields = l.Split(','); var item = new ParsedItem(); item.Name = fields[settings.NamePosition]; item.Category = fields[settings.CategoryPosition]; MarketCategory cat = MarketCategory.General; if (!MarketCategory.TryParse(fields[settings.MarketCategoryPosition], out cat)) { item.MarketCategoryParseError = true; } item.MarketCategory = cat; item.VendorSells = bool.Parse(fields[settings.VendorSellsPosition]); if (fields.Length > settings.VendorCostPosition) { item.VendorCost = int.Parse(fields[settings.VendorCostPosition]); } else { item.VendorCost = 0; } items.Add(item); } return(items); }
private void LoadSellItemPage() { var player = GetPC(); var model = MarketService.GetPlayerMarketData(player); string header; // A null or empty item object signifies that an item hasn't been selected for selling yet. // Hide all options except for "Pick Item" if (string.IsNullOrWhiteSpace(model.ItemObject)) { int numberItemsSelling = DataService .PCMarketListing .GetAllBySellerPlayerID(player.GlobalID) .Count(x => x.DateRemoved == null && x.DateSold == null); bool canSellAnotherItem = numberItemsSelling < MarketService.NumberOfItemsAllowedToBeSoldAtATime; header = ColorTokenService.Green("Galactic Trade Network - Sell Item") + "\n\n"; header += ColorTokenService.Green("Items Selling: ") + numberItemsSelling + " / " + MarketService.NumberOfItemsAllowedToBeSoldAtATime + "\n\n"; if (canSellAnotherItem) { header += "Please select an item to sell."; } else { header += "You cannot sell any more items at this time."; } SetResponseVisible("SellItemPage", 1, false); // Refresh SetResponseVisible("SellItemPage", 2, canSellAnotherItem); // Pick Item SetResponseVisible("SellItemPage", 3, false); // Change Price SetResponseVisible("SellItemPage", 4, false); // Change Seller Note SetResponseVisible("SellItemPage", 5, false); // Remove Seller Note SetResponseVisible("SellItemPage", 6, false); // Change Listing Length SetResponseVisible("SellItemPage", 7, false); // List the Item } // Otherwise an item has already been picked. else { MarketCategory category = DataService.MarketCategory.GetByID(model.ItemMarketCategoryID); float feeRate = MarketService.CalculateFeePercentage(model.LengthDays); int fees = (int)(model.SellPrice * feeRate); if (fees < 1) { fees = 1; } bool canListItem = model.SellPrice > 0; string sellerNote = model.SellerNote; if (string.IsNullOrWhiteSpace(sellerNote)) { sellerNote = "[NOT SPECIFIED]"; } header = ColorTokenService.Green("Galactic Trade Network - Sell Item") + "\n\n"; header += ColorTokenService.Green("Item: ") + model.ItemStackSize + "x " + model.ItemName + "\n"; header += ColorTokenService.Green("Category: ") + category.Name + "\n"; if (model.ItemRecommendedLevel > 0) { header += ColorTokenService.Green("Recommended Level: ") + model.ItemRecommendedLevel + "\n"; } header += ColorTokenService.Green("Sell Price: ") + model.SellPrice + " credits\n"; header += ColorTokenService.Green("Fees: ") + fees + " credits\n"; header += ColorTokenService.Green("Listing Length: ") + model.LengthDays + " days\n"; header += ColorTokenService.Green("Seller Note: ") + sellerNote + "\n\n"; if (canListItem) { header += ColorTokenService.Green("This item can be listed now."); } else { header += ColorTokenService.Red("This item cannot be listed yet. Please confirm all details - such as pricing - have been set."); } SetResponseVisible("SellItemPage", 1, true); // Refresh SetResponseVisible("SellItemPage", 2, false); // Pick Item SetResponseVisible("SellItemPage", 3, true); // Change Price SetResponseVisible("SellItemPage", 4, true); // Change Seller Note SetResponseVisible("SellItemPage", 5, true); // Remove Seller Note SetResponseVisible("SellItemPage", 6, true); // Change Listing Length SetResponseVisible("SellItemPage", 7, canListItem); // List the Item } SetPageHeader("SellItemPage", header); }