public async Task CardAlreadyExist()
        {
            var newUser = new User {
                Name = "CommonUser"
            };
            await db.Users.AddAsync(newUser);

            var newRoom = new Room {
                Name = "TestRoom", OwnerID = 1
            };
            await db.Rooms.AddAsync(newRoom);

            var newRound = new Round {
                Room = newRoom, Subject = "Some text", Timer = 2
            };
            await db.Rounds.AddAsync(newRound);

            await db.SaveChangesAsync();

            var cards = new Card[]
            {
                new Card {
                    Value = 0, Description = "zero"
                }, new Card {
                    Value = 1, Description = "one"
                }, new Card {
                    Value = 2, Description = "two"
                }, new Card {
                    Value = 4, Description = "four"
                }
            };
            var newDeck = new Deck {
                Name = "testDeck"
            };

            foreach (Card card in cards)
            {
                db.Cards.Add(card);
                newDeck.Cards.Add(card);
            }
            var newRoundCard = new RoundCard {
                Round = newRound, User = 1, Card = cards[2]
            };
            await db.RoundCards.AddAsync(newRoundCard);

            newRoundCard.Card = cards[1];
            await roundCard.UserChoose(db, newRoundCard);

            var length = newRound.Cards.Count;

            Assert.That(1, Is.EqualTo(length));
            Assert.That(2, Is.EqualTo(newRoundCard.Card.ID));
        }
示例#2
0
        /// <summary>
        /// Выбор карты.
        /// </summary>
        /// <param name="db">контекст бд.</param>
        /// <param name="card">инстанс класса карты.</param>
        /// <returns>ничего не возвращает.</returns>
        public async Task UserChoose(ModelContext db, RoundCard card)
        {
            if (await this.RoundCardExist(db, card.UserID, card.Round.ID))
            {
                var currentCard = await db.RoundCards.FindAsync(card.ID);

                currentCard.CardValue = card.CardValue;
            }
            else
            {
                db.RoundCards.Add(card);
            }

            await db.SaveChangesAsync();
        }
示例#3
0
 public async Task ChooseCard(RoundCard card)
 {
     await this.roundCardService.UserChoose(this.db, card);
 }
示例#4
0
        /// <summary>
        /// Метод заполнения бд значениями.
        /// </summary>
        /// <param name="context">контекст бд.</param>
        public static void Initialize(ModelContext context)
        {
            context.Database.EnsureCreated();
            if (context.Decks.Any())
            {
                return;
            }

            var users = new User[]
            {
                new User {
                    Name = "Alex"
                }, new User {
                    Name = "Dima"
                }, new User {
                    Name = "Andrey"
                }, new User {
                    Name = "Ilia"
                }
            };

            foreach (User user in users)
            {
                context.Users.Add(user);
            }

            context.SaveChanges();

            var rooms = new Room[]
            {
                new Room {
                    Name = "Room1", OwnerID = 1
                }, new Room {
                    Name = "Room2", OwnerID = 2
                }, new Room {
                    Name = "Room3", OwnerID = 3
                }, new Room {
                    Name = "Room4", OwnerID = 4
                }
            };

            foreach (Room room in rooms)
            {
                context.Rooms.Add(room);
            }

            context.SaveChanges();
            var cards = new Card[]
            {
                new Card {
                    Value = 0, Description = "zero"
                }, new Card {
                    Value = 1, Description = "one"
                }, new Card {
                    Value = 2, Description = "two"
                }, new Card {
                    Value = 4, Description = "four"
                }
            };
            var deck = new Deck {
                Name = "1st deck", Description = "this is 1st deck"
            };

            foreach (Card card in cards)
            {
                context.Cards.Add(card);
                deck.Cards.Add(card);
            }

            context.Decks.Add(deck);
            context.SaveChanges();
            var round = new Round {
                Subject = "test round 2", RoomID = 2, DeckID = 1
            };

            context.Rounds.Add(round);
            context.SaveChanges();

            var roundCards = new RoundCard[]
            {
                new RoundCard {
                    CardValue = cards[1].Value, UserID = 1, RoundID = 1
                }, new RoundCard {
                    CardValue = cards[2].Value, UserID = 2, RoundID = 1
                }
            };

            foreach (RoundCard card  in roundCards)
            {
                context.RoundCards.Add(card);
            }
            context.SaveChanges();
        }