public void OwnedAmountIsPopulatedInCardList()
        {
            var dataContext = new MagicOnlineBotDb();

            var card = dataContext.Prices.First(p => p.CardId == 20956);
            var magicCard = new MagicCard(card);
            Console.WriteLine("You get - " + magicCard + " OwnedAmount: " + card.OwnedAmount);
            card.OwnedAmount += 7;
            dataContext.SubmitChanges();

            var wishListCards = IoC.GetInstance<IMagicCardList>().GetComprehensiveCommonsAndUncommons(8, 2);
            Console.WriteLine(wishListCards.FirstOrDefault(p => p.Value.OwnedAmount > 0));

            card = dataContext.Prices.First(p => p.CardId == 12);
            magicCard = new MagicCard(card);
            Console.WriteLine("You get - " + magicCard + " OwnedAmount: " + card.OwnedAmount);
            card.OwnedAmount -= 7;
            dataContext.SubmitChanges();

            IoC.GetInstance<IMagicCardList>().InvalidateCache();

            wishListCards = IoC.GetInstance<IMagicCardList>().GetComprehensiveCommonsAndUncommons(8, 2);
            Console.WriteLine(wishListCards.FirstOrDefault(p => p.Value.OwnedAmount > 0));
        }
        public void LoadSetsViaXml()
        {
            MagicOnlineBotDb dataContext = new MagicOnlineBotDb(ConfigurationManager.ConnectionStrings["CardDataLayer.Properties.Settings.MagicOnlineBotConnectionString"].ToString());

            XDocument loadedSets = XDocument.Load(new StringReader(sets));
            var cardSets = from c in loadedSets.Descendants("Set")
                    select new
                               {
                                   Name = c.Attribute("LongName").Value,
                                   Set = c.Attribute("ShortName").Value
                               };

            foreach (var set in cardSets)
            {
                var cardSet = new CardSet();
                cardSet.CardSetId = 0;
                cardSet.CardSetName = set.Name;
                cardSet.CardSetAbrv = set.Set;
                dataContext.CardSets.InsertOnSubmit(cardSet);
            }

            dataContext.SubmitChanges();
        }
        public void SetupTransactionsForBulkBuyers()
        {
            var dataContext = new MagicOnlineBotDb();
            var druegbotCards =
                dataContext.BotCards.Where(
                    p => p.BotId == 4 && !p.Card.Premium && p.Card.MtgoCardId.GetValueOrDefault(0) > 0 && p.Card.CardSet != "DPA").ToList();
            var cardsToTransfer = new List<Card>();

            foreach (var druegbotCard in druegbotCards)
            {
                for (int i = 0; i < druegbotCard.OwnedAmount && i < 12; i++)
                {
                    cardsToTransfer.Add(druegbotCard.Card);
                }
            }

            var count = cardsToTransfer.Count;
            var transferCount = count/75;

            _logger.Trace("Count" + count);
            _logger.Trace("TransferCount" + transferCount);

            for (int i = 0; i < transferCount; i++)
            {
                var transfer = new Transfer
                                   {
                                       Completed = false,
                                       TradeBotId = 4,
                                       TradeeId = 173,
                                       WishList =
                                           string.Join(",",
                                                       cardsToTransfer.Skip(i*75).Take(75).Select(p => p.MtgoCardId))
                                   };

                dataContext.Transfers.InsertOnSubmit(transfer);
            }

            dataContext.SubmitChanges();
        }
        public void SaveCompletedTradeLogUpdatesTradeCreditsOnCompletion()
        {
            string tradee = DateTime.Now.Ticks.ToString();
            BotCredit botCredit = DatabaseInteractions.GetTradeCredits(tradee, _botName);

            var creditAfterTrade = 0.375m;
            DatabaseInteractions.SaveCompletedTradeLog(_botName, tradee, new List<MagicCard>(), new List<MagicCard>(), 0.0m, creditAfterTrade);
            botCredit = DatabaseInteractions.GetTradeCredits(tradee, _botName);
            botCredit.Credit.Should().Be(creditAfterTrade);

            //Cleanup
            var dataContext =
                new MagicOnlineBotDb(
                    ConfigurationManager.ConnectionStrings[
                        "CardDataLayer.Properties.Settings.MagicOnlineBotConnectionString"].
                        ToString());

            var tradeeRecord = dataContext.Tradees.Single(p => p.Name == tradee);
            var botCreditRecord = dataContext.BotCredits.Single(p => p.TradeeId == tradeeRecord.TradeeId);
            var tradeRecord = dataContext.Trades.Single(p => p.TradeeId == tradeeRecord.TradeeId);

            dataContext.Trades.DeleteOnSubmit(tradeRecord);
            dataContext.BotCredits.DeleteOnSubmit(botCreditRecord);
            dataContext.Tradees.DeleteOnSubmit(tradeeRecord);
            dataContext.SubmitChanges();
        }
        public void TradeeAndBotCreditIsCreatedIfDoNotExist()
        {
            string tradee = DateTime.Now.Ticks.ToString();
            BotCredit botCredit = DatabaseInteractions.GetTradeCredits(tradee, _botName);
            botCredit.Should().NotBeNull();
            botCredit.NumOfTrades.Should().Be(1);
            botCredit.Credit.Should().Be((decimal)0.0);

            botCredit = DatabaseInteractions.GetTradeCredits(tradee, _botName);
            botCredit.Should().NotBeNull();
            botCredit.NumOfTrades.Should().Be(2);
            botCredit.Credit.Should().Be((decimal)0.0);

            //Cleanup
            var dataContext =
                new MagicOnlineBotDb();

            var tradeeRecord = dataContext.Tradees.Single(p => p.Name == tradee);
            var botCreditRecord = dataContext.BotCredits.Single(p => p.TradeeId == tradeeRecord.TradeeId);

            dataContext.BotCredits.DeleteOnSubmit(botCreditRecord);
            dataContext.Tradees.DeleteOnSubmit(tradeeRecord);
            dataContext.SubmitChanges();
        }