Exemplo n.º 1
0
        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();
        }
Exemplo n.º 2
0
        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));
        }
Exemplo n.º 3
0
        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
            });
        }
Exemplo n.º 4
0
        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);
        }