public async void UserDepositSuccess() { var listOfDepositItems = new List <Item> { new Item { AssetId = "assetId1", AppId = 730, ContextId = "2", MarketHashName = "weapon1" }, new Item { AssetId = "assetId2", AppId = 730, ContextId = "2", MarketHashName = "weapon2" }, new Item { AssetId = "assetId3", AppId = 730, ContextId = "2", MarketHashName = "weapon3" }, new Item { AssetId = "assetId4", AppId = 730, ContextId = "2", MarketHashName = "weapon1" }, }; var itemDescriptions = new List <DatabaseModel.ItemDescription> { new DatabaseModel.ItemDescription("weapon1", new decimal(1), "730", "2", "img", true, 1), new DatabaseModel.ItemDescription("weapon2", new decimal(2), "730", "2", "img", true, 2), new DatabaseModel.ItemDescription("weapon3", new decimal(3), "730", "2", "img", true, 3), }; var botStack = new Stack <DatabaseModel.Bot>(); botStack.Push(new DatabaseModel.Bot("botSteamId", "botName")); var steamInventory = new GetPlayerSteamInventoryResponse { PlayerInventory = new PlayerResponseItems { Items = { listOfDepositItems } } }; A.CallTo(() => _fakedSteamServiceClient.GetPlayerSteamInventoryAsync(A <GetPlayerSteamInventoryRequest> ._)).Returns(steamInventory); A.CallTo(() => _fakedSettingsRepoService.GetSettingsAsync()).Returns(new DatabaseModel.Settings(10, 0, 0, DateTime.Today, 20)); A.CallTo(() => _fakedBotService.GetAvalibleBotsForDeposit(A <DatabaseModel.User> ._, A <List <DatabaseModel.Item> > ._)).Returns(botStack); A.CallTo(() => _fakedItemDescRepoService.FindAsync(A <List <string> > ._)).Returns(itemDescriptions); var respose = await _steamService.MakeDepositOfferAsync(_realUser.SteamId, listOfDepositItems); Assert.Equal(1, respose.Count); A.CallTo(() => _fakedSteamServiceClient.MakeOfferAsync(A <MakeOfferRequest> .That.Matches( offer => offer.SendItems == false && offer.Items.Count == 4 && offer.User.SteamId == _realUser.SteamId && offer.BotName == "botName" ))) .MustHaveHappened(); }
private async Task <List <Item> > GetItemsThatUsersOwns(DatabaseModel.User user) { var rawItems = await _itemRepoSerive.FindAsync(user); var list = rawItems.Select(item => item.DescriptionId).ToList(); var itemDescriptions = await _itemDescriptionRepoService.FindAsync(list); return(rawItems.MapItemsToItemsDescription(itemDescriptions)); }
private async Task <OfferData> CreateTransactionOfferAsync ( List <Item> itemsInOfferRequest, DatabaseModel.Bot bot, DatabaseModel.User owner, bool isDeposit ) { var listOfNames = itemsInOfferRequest.Select(item => item.MarketHashName).ToList(); var itemsDesc = await _itemDescRepoServcice.FindAsync(listOfNames); var databaseItems = new List <DatabaseModel.Item>(); var itemsInOffer = new List <DatabaseModel.ItemInOfferTransaction>(); decimal sumOfItems = 0; foreach (var item in itemsInOfferRequest) { DatabaseModel.ItemDescription itemDesc; try { itemDesc = itemsDesc.First(i => i.Name == item.MarketHashName); } catch (System.Exception e) { var ex = new SteamMarketNameFuckupException(item.MarketHashName, e); ex.Data.Add("marketHashName", item.MarketHashName); ex.Data.Add("itemDescriptions", itemsDesc); _logService.Critical(ex); throw ex; } var steamLockTime = DateTimeOffset.Now; if (item.AppId == 730) { steamLockTime = steamLockTime.Add(_steamLock); } databaseItems.Add(new DatabaseModel.Item(item.AssetId, itemDesc.Id, bot.Id, owner.Id, steamLockTime)); sumOfItems += itemDesc.Value; var itemInOffer = new DatabaseModel.ItemInOfferTransaction(int.MinValue, itemDesc.Id, item.AssetId, itemDesc.Value); itemsInOffer.Add(itemInOffer); } var offer = new DatabaseModel.OfferTransaction(owner.Id, bot.Id, sumOfItems, isDeposit, null, DateTime.Now); return(new OfferData { Items = databaseItems, ItemsInOffer = itemsInOffer, OfferTransactions = offer }); }
public async void TestForBetsJackpotAndOnCoinFlip() { var user = new DatabaseModel.User("steamId", "name", "imageUrl", "tradelink", DateTime.Now, DateTime.Now, false, null, 9); A.CallTo(() => _itemRepoService.FindAsync(A <DatabaseModel.User> ._)).Returns(new List <DatabaseModel.Item> { new DatabaseModel.Item("assetId1", 1, -1, 9, DateTimeOffset.Now, 10), new DatabaseModel.Item("assetId2", 1, -1, 9, DateTimeOffset.Now, 11), new DatabaseModel.Item("assetId3", 2, -1, 9, DateTimeOffset.Now, 12), new DatabaseModel.Item("assetId4", 3, -1, 9, DateTimeOffset.Now, 13), new DatabaseModel.Item("assetId5", 3, -1, 9, DateTimeOffset.Now, 13), new DatabaseModel.Item("assetId6", 3, -1, 9, DateTimeOffset.Now, 13), }); A.CallTo(() => _descriptionRepoService.FindAsync(A <List <int> > ._)).Returns(new List <DatabaseModel.ItemDescription> { new DatabaseModel.ItemDescription("itemDesc1", 1, "730", "2", "img1", true, 1), new DatabaseModel.ItemDescription("itemDesc2", 1, "730", "2", "img1", true, 2), new DatabaseModel.ItemDescription("itemDesc3", 1, "730", "2", "img1", true, 3) }); var match = new DatabaseModel.Match(1, "salt", "hash", 14.4.ToString(CultureInfo.InvariantCulture), 1, null, null, 1, 1, DateTime.Now, 1); var bets = new List <DatabaseModel.Bet> { new DatabaseModel.Bet(10, 1, 1, DateTime.Now, 11), new DatabaseModel.Bet(9, 1, 2, DateTime.Now, 11) }; A.CallTo(() => _itemBettedRepoSerivce.FindAsync(A <List <DatabaseModel.Bet> > ._)).Returns(new List <DatabaseModel.ItemBetted> { new DatabaseModel.ItemBetted(bets[0].Id, 1, "assetId1", 1), new DatabaseModel.ItemBetted(bets[0].Id, 3, "assetId4", 1), }); A.CallTo(() => _matchRepoService.GetCurrentMatch()).Returns(match); A.CallTo(() => _betRepoService.FindAsync(A <List <LookUpGameModeBet> > ._)).Returns(bets); A.CallTo(() => _fakedCoinFlipService.FindAllNotClosedMatches()).Returns(new List <DatabaseModel.CoinFlip> { new DatabaseModel.CoinFlip { Created = DateTime.Today, CreatorIsHead = false, CreatorUserId = 9, GameModeId = 1, Hash = "hash", Salt = "salt", Id = 1, Percentage = "", RoundId = "", SettingId = 0, Status = 1, TimerStarted = null, WinnerId = null }, new DatabaseModel.CoinFlip { Created = DateTime.Today, CreatorIsHead = false, CreatorUserId = 10, GameModeId = 1, Hash = "hash", Salt = "salt", Id = 1, Percentage = "", RoundId = "", SettingId = 0, Status = 1, TimerStarted = null, WinnerId = null } }); var itemService = new ItemService(_fakedRepoService); var avalibleItemsForUser = await itemService.GetAvalibleItemsForUser(user); A.CallTo(() => _fakedCoinFlipService.FindAllNotClosedMatches()).MustHaveHappened(); Assert.Equal(4, avalibleItemsForUser.Count); Assert.Equal("itemDesc3", avalibleItemsForUser.Single(item => item.AssetId == "assetId5").Name); Assert.Equal("itemDesc3", avalibleItemsForUser.Single(item => item.AssetId == "assetId6").Name); Assert.Equal("itemDesc2", avalibleItemsForUser.Single(item => item.AssetId == "assetId3").Name); Assert.Equal("itemDesc1", avalibleItemsForUser.Single(item => item.AssetId == "assetId2").Name); }