Beispiel #1
0
        public async Task UserPrepareWithdrawalItemsSuccess()
        {
            _offerMinmalInfo.OfferSend.SteamOffer.ItemsToReceive.Clear();
            _offerMinmalInfo.OfferSend.SteamOffer.Id = "12346";

            var offerTransInsertWithId = new DatabaseModel.OfferTransaction(1, 14, new decimal(196.91), false, "12346", DateTime.Today, 75);
            var bot = new DatabaseModel.Bot("botSteamId", "botName", 14);

            var userInsertRes = new DatabaseModel.User("userSteamId", "name", "img", "tradeLink", DateTime.Today, DateTime.Today, false, null, 1);

            A.CallTo(() => _fakedUserRepoService.FindAsync("userSteamId")).Returns(userInsertRes);

            var botLookRes = Task.FromResult(bot);

            A.CallTo(() => _fakedBotRepoService.FindAsync("botSteamId")).Returns(botLookRes);

            A.CallTo(() => _fakedOfferTranascrionRepoService.InsertAsync(A <DatabaseModel.OfferTransaction> .That.Matches(o =>
                                                                                                                          !o.IsDeposit && o.Accepted == null && o.BotId == 14 && o.UserId == 1 && o.Id == 0 && o.TotalValue == new decimal(196.91)
                                                                                                                          ), A <ITransactionWrapper> ._)).Returns(offerTransInsertWithId);

            await _offerService.PrepareWithdrawlSteamOffer(_offerMinmalInfo.OfferSend.SteamOffer.ItemsToGive.ToList(), bot, userInsertRes);

            A.CallTo(() => _fakedOfferTranascrionRepoService.InsertAsync(A <DatabaseModel.OfferTransaction> .That.Matches(o =>
                                                                                                                          !o.IsDeposit && o.Accepted == null && o.BotId == 14 && o.UserId == 1 && o.Id == 0 && o.TotalValue == new decimal(196.91)
                                                                                                                          ), A <ITransactionWrapper> ._)).MustHaveHappened();
            A.CallTo(() => _fakedItemInOfferTransactionRepoService.InsertAsync(A <List <DatabaseModel.ItemInOfferTransaction> > .That.Matches(i =>
                                                                                                                                              i.Where(o => o.OfferTransactionId == 75 && o.ItemDescriptionId == 1 && o.Value == new decimal(11.22)).ToList().Count == 2 &&
                                                                                                                                              i.Where(o => o.OfferTransactionId == 75 && o.ItemDescriptionId == 3 && o.Value == new decimal(78.00)).ToList().Count == 1 &&
                                                                                                                                              i.Where(o => o.OfferTransactionId == 75 && o.ItemDescriptionId == 4 && o.Value == new decimal(5.47)).ToList().Count == 1 &&
                                                                                                                                              i.Where(o => o.OfferTransactionId == 75 && o.ItemDescriptionId == 2 && o.Value == new decimal(45.5)).ToList().Count == 2
                                                                                                                                              ), A <ITransactionWrapper> ._)).MustHaveHappened();

            A.CallTo(() => _fakedTransactionWrapper.Commit()).MustHaveHappened();
        }
Beispiel #2
0
        public async Task <DatabaseModel.Bot> InsertAsync(DatabaseModel.Bot bot)
        {
            var query = _botQueries.InsertReturnsId(bot);
            var id    = (int)await _databaseConnection.ExecuteScalarAsync(query);

            return(new DatabaseModel.Bot(bot.SteamId, bot.Name, id));
        }
        public async Task InitTest()
        {
            var itemDesc1 = new DatabaseModel.ItemDescription("item1", new decimal(10.20), "730", "2", "imageUrl", true);
            var itemDesc2 = new DatabaseModel.ItemDescription("item2", new decimal(11.40), "730", "2", "imageUrl", true);

            ItemDescription1 = await new ItemDescriptionRepoService(DatabaseConnectionFactory, new ItemDescriptionQueries()).InsertAsync(itemDesc1);
            ItemDescription2 = await new ItemDescriptionRepoService(DatabaseConnectionFactory, new ItemDescriptionQueries()).InsertAsync(itemDesc2);

            var gameMode  = new DatabaseModel.GameMode("Jackpot", 1);
            var gameMode2 = new DatabaseModel.GameMode("Jackpot1", 2);
            var gameMode3 = new DatabaseModel.GameMode("Jackpot2", 3);
            var gameMode4 = new DatabaseModel.GameMode("Jackpot3", 4);

            GameMode  = await new GameModeRepoService(DatabaseConnectionFactory).Insert(gameMode);
            GameMode2 = await new GameModeRepoService(DatabaseConnectionFactory).Insert(gameMode2);
            GameMode3 = await new GameModeRepoService(DatabaseConnectionFactory).Insert(gameMode3);
            GameMode4 = await new GameModeRepoService(DatabaseConnectionFactory).Insert(gameMode4);

            var bot = new DatabaseModel.Bot(",anotherBot", "Bot 2");

            Bot1 = await new BotRepoService(DatabaseConnectionFactory, new BotQueries()).InsertAsync(bot);
            var match = new DatabaseModel.Match(1, "salt", "hash", 55.ToString(CultureInfo.InvariantCulture), 1, null, null, 1, GameMode.Id,
                                                DateTime.Now);

            Match1 = await new MatchRepoService(DatabaseConnectionFactory, new MatchQueries()).InsertAsync(match);
            var match1 = new DatabaseModel.Match(2, "salt", "hash", 55.ToString(CultureInfo.InvariantCulture), 1, null, null, 1, GameMode.Id,
                                                 DateTime.Now);

            Match2 = await new MatchRepoService(DatabaseConnectionFactory, new MatchQueries()).InsertAsync(match1);
        }
Beispiel #4
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
            });
        }
Beispiel #5
0
        public SqlQuery InsertReturnsId(DatabaseModel.Bot bot)
        {
            var dict = new Dictionary <string, object>
            {
                { "@steamId", bot.SteamId },
                { "@name", bot.Name }
            };

            return(new SqlQuery("INSERT INTO [Bot] (SteamId, Name) OUTPUT INSERTED.Id VALUES (@steamId ,@name);", dict));
        }
        public async void BotInsertOneSuccess()
        {
            var botReposeService = new BotRepoService(_fakedFactory, new BotQueries());
            var bot       = new DatabaseModel.Bot("someSteamId", "Bot 1");
            var insertRes = await botReposeService.InsertAsync(bot);

            Assert.True(insertRes.Id > 0);

            var getRes = await botReposeService.FindAsync(1);

            Assert.Equal("someSteamId", getRes.SteamId);
            Assert.Equal("Bot 1", getRes.Name);
        }
        public async Task InitTest()
        {
            var offerTransactionServiceRepo = new OfferTransactionRepoService(DatabaseConnectionFactory, new OfferTransationQueries());
            var botServiceRepo      = new BotRepoService(DatabaseConnectionFactory, new BotQueries());
            var userServiceRepo     = new UserRepoService(DatabaseConnectionFactory, new UserQueries());
            var itemDescServiceRepo = new ItemDescriptionRepoService(DatabaseConnectionFactory, new ItemDescriptionQueries());

            _user1 = await userServiceRepo.InsertAsync(new DatabaseModel.User("steamId1", "name1", "imgUrl", "tradelink", DateTime.Now,
                                                                              DateTime.Now, false));

            _user2 = await userServiceRepo.InsertAsync(new DatabaseModel.User("steamId2", "name2", "imgUrl", "tradelink", DateTime.Now,
                                                                              DateTime.Now, false));

            _bot1 = await botServiceRepo.InsertAsync(new DatabaseModel.Bot("botSteamId1", "botName1"));


            var toInsert1 = new DatabaseModel.OfferTransaction(_user1.Id, _bot1.Id, new decimal(10.45), true, "456232", DateTime.Now);
            var toInsert2 = new DatabaseModel.OfferTransaction(_user2.Id, _bot1.Id, new decimal(54.45), false, "456332", DateTime.Now);
            var toInsert3 = new DatabaseModel.OfferTransaction(_user2.Id, _bot1.Id, new decimal(666.66), false, "454132", DateTime.Now);
            var toInsert4 = new DatabaseModel.OfferTransaction(_user2.Id, _bot1.Id, new decimal(544.75), false, "455132", null);
            var toInsert5 = new DatabaseModel.OfferTransaction(_user2.Id, _bot1.Id, new decimal(10.75), true, "456162", DateTime.Today);
            var toInsert6 = new DatabaseModel.OfferTransaction(_user2.Id, _bot1.Id, new decimal(10.75), true, "44864748654", DateTime.Today);
            var toInsert7 = new DatabaseModel.OfferTransaction(_user2.Id, _bot1.Id, new decimal(10.75), true, "548", DateTime.Today);
            var toInsert8 = new DatabaseModel.OfferTransaction(_user2.Id, _bot1.Id, new decimal(10.75), true, "555", DateTime.Today);
            var toInsert9 = new DatabaseModel.OfferTransaction(_user2.Id, _bot1.Id, new decimal(10.75), true, "5646555", DateTime.Today);

            OfferTransaction1 = await offerTransactionServiceRepo.InsertAsync(toInsert1);

            OfferTransaction2 = await offerTransactionServiceRepo.InsertAsync(toInsert2);

            OfferTransaction3 = await offerTransactionServiceRepo.InsertAsync(toInsert3);

            OfferTransaction4 = await offerTransactionServiceRepo.InsertAsync(toInsert4);

            OfferTransaction5 = await offerTransactionServiceRepo.InsertAsync(toInsert5);

            OfferTransaction6 = await offerTransactionServiceRepo.InsertAsync(toInsert6);

            OfferTransaction7 = await offerTransactionServiceRepo.InsertAsync(toInsert7);

            OfferTransaction8 = await offerTransactionServiceRepo.InsertAsync(toInsert8);

            OfferTransaction9 = await offerTransactionServiceRepo.InsertAsync(toInsert9);

            ItemDescription1 =
                await itemDescServiceRepo.InsertAsync(new DatabaseModel.ItemDescription("weapon1", new decimal(1.40), "720", "2", "imgUrl1", true));

            ItemDescription2 =
                await itemDescServiceRepo.InsertAsync(new DatabaseModel.ItemDescription("weapon2", new decimal(8.75), "720", "2", "imgUrl2", true));
        }
Beispiel #8
0
 private MakeOfferRequest MakeOfferRequest(DatabaseModel.User user, DatabaseModel.Bot bot, IEnumerable<Item> itemsInOffer, bool isDeposit)
 {
     var request = new MakeOfferRequest
     {
         SendItems = !isDeposit,
         User = new User
         {
             SteamId = user.SteamId,
             TradeLink = user.TradeLink
         },
         BotName = bot.Name,
         Items = {itemsInOffer}
     };
     return request;
 }
Beispiel #9
0
        public async Task <DatabaseModel.OfferTransaction> PrepareWithdrawlSteamOffer
        (
            List <Item> itemsInOfferRequest,
            DatabaseModel.Bot bot,
            DatabaseModel.User owner
        )
        {
            var offer = await CreateTransactionOfferAsync(itemsInOfferRequest, bot, owner, false);

            offer.OfferTransactions.Accepted = null;
            using (var transation = _transactionFactory.BeginTransaction())
            {
                return(await InsertTransactionOfferAndItemsInTransactionOffer(transation, offer.OfferTransactions, offer.ItemsInOffer));
            }
        }
Beispiel #10
0
        private async Task AddPrepareWithdrawOfferToDatabase
        (
            List<Item> itemsInOffer,
            DatabaseModel.Bot bot,
            DatabaseModel.User user,
            MakeOfferResponse offerResponse
        )
        {
            var offerTransaction = await _offerService.PrepareWithdrawlSteamOffer(itemsInOffer.ToList(), bot, user);
            if (offerResponse.DataCase == MakeOfferResponse.DataOneofCase.Error || offerResponse.DataCase == MakeOfferResponse.DataOneofCase.None)
            {
                await _repoServiceFactory.ItemInOfferTransactionRepoService.Remove(offerTransaction.Id);
                await _repoServiceFactory.OfferTranascrionRepoService.Remove(offerTransaction.Id);
                return;
            }

            await _repoServiceFactory.OfferTranascrionRepoService.AddSteamIdToOffer(offerTransaction.Id, offerResponse.Offer.SteamOffer.Id);
        }
        public async Task InitTest()
        {
            var itemDesc1 = new DatabaseModel.ItemDescription("item1", new decimal(10.20), "730", "2", "imageUrl", true);
            var itemDesc2 = new DatabaseModel.ItemDescription("item2", new decimal(11.40), "730", "2", "imageUrl", true);

            ItemDescription1 = await new ItemDescriptionRepoService(DatabaseConnectionFactory, new ItemDescriptionQueries()).InsertAsync(itemDesc1);
            ItemDescription2 = await new ItemDescriptionRepoService(DatabaseConnectionFactory, new ItemDescriptionQueries()).InsertAsync(itemDesc2);

            var bot = new DatabaseModel.Bot(",anotherBot", "Bot 2");

            Bot1 = await new BotRepoService(DatabaseConnectionFactory, new BotQueries()).InsertAsync(bot);

            var userRepo        = new QueryFactory().UserQueries;
            var userRepoService = new UserRepoService(DatabaseConnectionFactory, userRepo);

            User1 = await userRepoService.InsertAsync(new DatabaseModel.User(
                                                          "987456131549",
                                                          "Kalle",
                                                          " ba/bab154f01140ec39b2986d97838f0127534ec82d_full.jpg ",
                                                          "?partner=117688384&token=mn347bmb ",
                                                          DateTime.Now,
                                                          DateTime.Now,
                                                          false
                                                          ));

            User2 = await userRepoService.InsertAsync(new DatabaseModel.User(
                                                          "987456131548",
                                                          "Kalle1",
                                                          " ba/bab154f01140ec39b2986d97838f0127534ec82d_full.jpg ",
                                                          "?partner=117688384&token=mn347bmb ",
                                                          DateTime.Now,
                                                          DateTime.Now,
                                                          false
                                                          ));

            User3 = await userRepoService.InsertAsync(new DatabaseModel.User(
                                                          "789456321159",
                                                          "Kalle1",
                                                          " ba/bab154f01140ec39b2986d97838f0127534ec82d_full.jpg ",
                                                          "?partner=117688384&token=mn347bmb ",
                                                          DateTime.Now,
                                                          DateTime.Now,
                                                          false
                                                          ));

            User4 = await userRepoService.InsertAsync(new DatabaseModel.User(
                                                          "4571248613587",
                                                          "Kalle1",
                                                          " ba/bab154f01140ec39b2986d97838f0127534ec82d_full.jpg ",
                                                          "?partner=117688384&token=mn347bmb ",
                                                          DateTime.Now,
                                                          DateTime.Now,
                                                          false
                                                          ));

            User5 = await userRepoService.InsertAsync(new DatabaseModel.User(
                                                          "2745613477",
                                                          "Kalle1",
                                                          " ba/bab154f01140ec39b2986d97838f0127534ec82d_full.jpg ",
                                                          "?partner=117688384&token=mn347bmb ",
                                                          DateTime.Now,
                                                          DateTime.Now,
                                                          false
                                                          ));

            User6 = await userRepoService.InsertAsync(new DatabaseModel.User(
                                                          "27456134hjadshjgs77",
                                                          "Kalle1",
                                                          " ba/bab154f01140ec39b2986d97838f0127534ec82d_full.jpg ",
                                                          "?partner=117688384&token=mn347bmb ",
                                                          DateTime.Now,
                                                          DateTime.Now,
                                                          false
                                                          ));
        }
Beispiel #12
0
 public SqlQuery Insert(DatabaseModel.Bot bot)
 {
     return(InsertRange(new List <DatabaseModel.Bot> {
         bot
     }));
 }