public void CanAddPlayersToDraft()
        {
            IDraftMemberPositionsRepository repository = new DraftMemberPositionsRepository();

            Draft draft1 = _drafts[1];
            Member member1 = _members[0];
            Member member2 = _members[1];
            Member member3 = _members[2];
            Member member4 = _members[3];

            repository.AddMemberToDraft(draft1, member1, 4);
            repository.AddMemberToDraft(draft1, member2, 3);
            repository.AddMemberToDraft(draft1, member3, 2);
            repository.AddMemberToDraft(draft1, member4, 1);

            int positionFromDb = repository.GetDraftPosition(draft1, member1);
            Assert.AreEqual(4, positionFromDb);

            positionFromDb = repository.GetDraftPosition(draft1, member2);
            Assert.AreEqual(3, positionFromDb);

            positionFromDb = repository.GetDraftPosition(draft1, member3);
            Assert.AreEqual(2, positionFromDb);

            positionFromDb = repository.GetDraftPosition(draft1, member4);
            Assert.AreEqual(1, positionFromDb);
        }
        public bool AddMemberToDraft(int draftId, int memberId, int draftPosition)
        {
            IDraftMemberPositionsRepository dmpr = new DraftMemberPositionsRepository();
            IDraftRepository dr = new DraftRepository();
            IMemberRepository mr = new MemberRepository();

            try
            {
                var draft = dr.GetById(draftId);
                dmpr.AddMemberToDraft(draft, mr.GetById(memberId), draftPosition);
                draft.DraftSize++;
                dr.Update(draft);
                return true;
            }
            catch
            {
                return false;
            }
        }
        public bool AddMemberToDraft(int draftId, int memberId)
        {
            IDraftMemberPositionsRepository dmpr = new DraftMemberPositionsRepository();
            IDraftRepository dr = new DraftRepository();
            IMemberRepository mr = new MemberRepository();

            var draft = dr.GetById(draftId);

            ICollection<DraftMemberPositions> draftMembers = dmpr.GetMemberPositionsByDraft(draft);

            int newPosition = 0;
            bool foundPosition = true;

            while (foundPosition)
            {
                foundPosition = false;
                newPosition++;

                foreach (var draftMember in draftMembers)
                {
                    if (draftMember.Position == newPosition)
                    {
                        foundPosition = true;
                    }
                }

            }
            try
            {
                dmpr.AddMemberToDraft(draft, mr.GetById(memberId), newPosition);
                draft.DraftSize++;
                dr.Update(draft);
                return true;
            }
            catch
            {
                return false;
            }
        }
        public bool StartDraft(int draftId, bool randomizeSeats)
        {
            IDraftRepository dr = new DraftRepository();
            IDraftMemberPositionsRepository dmpr = new DraftMemberPositionsRepository();

            var draft = dr.GetById(draftId);

            if (randomizeSeats)
            {
                var draftMembers = dmpr.GetMemberPositionsByDraft(draft).ToList();
                var rand = new Random();

                for (var i = 1; i <= draft.DraftSize; i++)
                {
                    var randomPlayer = rand.Next(0, draftMembers.Count - 1);
                    var member = draftMembers[randomPlayer].Member;
                    dmpr.UpdatePosition(draft, member, i);
                    draftMembers.RemoveAt(randomPlayer);
                }
            }

            var startingPlayer = dmpr.GetDraftMemberPositionByDraftAndPosition(draft, 1);

            draft.Started = true;
            draft.CurrentTurn = startingPlayer.Member;

            dr.Update(draft);

            return false;
        }
        public bool PickCard(int draftId, int memberId, int cardId)
        {
            if (!IsMyTurn(draftId, memberId))
            {
                return FuturePickCard(draftId, memberId, cardId);
            }

            IDraftRepository dr = new DraftRepository();
            IMemberRepository mr = new MemberRepository();
            ICardRepository cr = new CardRepository();

            var draft = dr.GetById(draftId);
            var member = mr.GetById(memberId);
            var card = cr.GetById(cardId);

            if (draft.Finished || !draft.Started)
            {
                return false;
            }

            IPickRepository pickRepository = new PickRepository();
            try
            {
                var pick = pickRepository.PickCard(draft, member, card);
            }
            catch (GenericADOException)
            {
                return false;
            }

            var picks = pickRepository.GetPicksByDraft(draft);

            IDraftMemberPositionsRepository dmpr = new DraftMemberPositionsRepository();
            var nextMemberDraftPosition = dmpr.GetDraftMemberPositionByDraftAndPosition(draft,
                                                                                        GetNextPickPosition(picks.Count, draft.DraftSize));

            draft.CurrentTurn = nextMemberDraftPosition.Member;

            IDraftRepository draftRepository = new DraftRepository();
            draftRepository.Update(draft);

            TryFuturePick(draftId);

            return true;
        }
        public int CurrentPickPosition(int draftId)
        {
            IDraftRepository dr = new DraftRepository();
            IDraftMemberPositionsRepository dpr = new DraftMemberPositionsRepository();
            var draft = dr.GetById(draftId);

            return dpr.GetDraftPosition(draft, draft.CurrentTurn);
        }
        public void CanAddPlayerToDraft()
        {
            IDraftMemberPositionsRepository repository = new DraftMemberPositionsRepository();

            Draft draft1 = _drafts[1];
            Member member1 = _members[0];

            repository.AddMemberToDraft(draft1, member1, 4);

            int positionFromDb = repository.GetDraftPosition(draft1, member1);

            Assert.AreEqual(4, positionFromDb);
        }
        public void CanCreateDraftFixedPositions()
        {
            IDraftLogic draftLogic = new ModifiedRotisserieDraftLogic();
            var draft = draftLogic.CreateDraft("My Testdraft", _members[1].Id, 75, true);

            draftLogic.AddMemberToDraft(draft.Id, _members[0].Id);
            draftLogic.AddMemberToDraft(draft.Id, _members[1].Id);
            draftLogic.AddMemberToDraft(draft.Id, _members[2].Id);
            draftLogic.AddMemberToDraft(draft.Id, _members[3].Id);
            draftLogic.AddMemberToDraft(draft.Id, _members[4].Id);
            draftLogic.AddMemberToDraft(draft.Id, _members[5].Id);
            draftLogic.AddMemberToDraft(draft.Id, _members[6].Id);
            draftLogic.AddMemberToDraft(draft.Id, _members[7].Id);

            //draftLogic.PickCard(draft.Id, _members[0].Id, _cards[5].Id);
            //draftLogic.PickCard(draft.Id, _members[1].Id, _cards[11].Id);

            // use session to try to load the pick)
            using (var session = _sessionFactory.OpenSession())
            {
                var fromDb = session.Get<Draft>(draft.Id);

                // Test that the pick was successfully inserted
                Assert.IsNotNull(fromDb);
                Assert.AreNotSame(draft, fromDb);

                Assert.AreEqual(draft.Owner.Id, fromDb.Owner.Id);
                Assert.AreEqual(draft.MaximumPicksPerMember, fromDb.MaximumPicksPerMember);
                Assert.AreEqual(8, fromDb.DraftSize);

                IDraftMemberPositionsRepository dmpr = new DraftMemberPositionsRepository();

                ICollection<DraftMemberPositions> testList = dmpr.GetMemberPositionsByDraft(draft);
                List<DraftMemberPositions> test = testList.ToList();

                var position = dmpr.GetDraftMemberPositionByDraftAndPosition(fromDb, 4);
                Assert.AreEqual(_members[3].Id, position.Id);

                position = dmpr.GetDraftMemberPositionByDraftAndPosition(fromDb, 8);
                Assert.AreEqual(_members[7].Id, position.Id);
                position = dmpr.GetDraftMemberPositionByDraftAndPosition(fromDb, 7);
                Assert.AreEqual(_members[6].Id, position.Id);
                position = dmpr.GetDraftMemberPositionByDraftAndPosition(fromDb, 6);
                Assert.AreEqual(_members[5].Id, position.Id);
                position = dmpr.GetDraftMemberPositionByDraftAndPosition(fromDb, 5);
                Assert.AreEqual(_members[4].Id, position.Id);
                position = dmpr.GetDraftMemberPositionByDraftAndPosition(fromDb, 3);
                Assert.AreEqual(_members[2].Id, position.Id);
                position = dmpr.GetDraftMemberPositionByDraftAndPosition(fromDb, 2);
                Assert.AreEqual(_members[1].Id, position.Id);
                position = dmpr.GetDraftMemberPositionByDraftAndPosition(fromDb, 1);
                Assert.AreEqual(_members[0].Id, position.Id);

            }
        }
        public void CanUpdatePlayerPosition()
        {
            IDraftMemberPositionsRepository repository = new DraftMemberPositionsRepository();
            repository.UpdatePosition(_drafts[0], _members[1], 5);

            int positionFromDb = repository.GetDraftPosition(_drafts[0], _members[1]);

            Assert.AreEqual(5, positionFromDb);
        }
        public void CanGetPlayerListFromDraft()
        {
            IDraftMemberPositionsRepository repository = new DraftMemberPositionsRepository();
            ICollection<DraftMemberPositions> draftMemberPositions = repository.GetMemberPositionsByDraft(_drafts[0]);

            Assert.AreEqual(4, draftMemberPositions.Count);
        }
 public void CanGetPlayerFromPosition()
 {
     IDraftMemberPositionsRepository repository = new DraftMemberPositionsRepository();
     var pos = repository.GetDraftMemberPositionByDraftAndPosition(_drafts[0], 3);
     Assert.AreEqual(_members[2].Id, pos.Id);
 }
        public void CanGetDraftListFromPlayer()
        {
            IDraftMemberPositionsRepository repository = new DraftMemberPositionsRepository();
            ICollection<DraftMemberPositions> draftMemberPositions = repository.GetDraftPositionsByMember(_members[3]);

            Assert.AreEqual(2, draftMemberPositions.Count);
        }
Exemplo n.º 13
0
        public bool IsMemberOfDraft(int memberId, int draftId)
        {
            IDraftMemberPositionsRepository dmpr = new DraftMemberPositionsRepository();
            IDraftRepository dr = new DraftRepository();

            var draft = dr.GetById(draftId);
            var memberPositions = dmpr.GetMemberPositionsByDraft(draft);

            return memberPositions.Any(memberPosition => memberPosition.Member.Id == memberId);
        }
Exemplo n.º 14
0
        public List<DraftMemberPositions> GetDraftMembers(int draftId)
        {
            IDraftMemberPositionsRepository dmpr = new DraftMemberPositionsRepository();
            IDraftRepository dr = new DraftRepository();

            var draft = dr.GetById(draftId);

            var ret = dmpr.GetMemberPositionsByDraft(draft);
            return ret == null ? new List<DraftMemberPositions>() : ret.ToList();
        }
        public void CreateInitialData()
        {
            using (ISession session = _sessionFactory.OpenSession())
            using (ITransaction transaction = session.BeginTransaction())
            {
                foreach (var draft in _drafts)
                    session.Save(draft);

                foreach (var member in _members)
                    session.Save(member);

                transaction.Commit();

                IDraftMemberPositionsRepository repository = new DraftMemberPositionsRepository();

                repository.AddMemberToDraft(_drafts[0], _members[0], 1);
                repository.AddMemberToDraft(_drafts[0], _members[1], 2);
                repository.AddMemberToDraft(_drafts[0], _members[2], 3);
                repository.AddMemberToDraft(_drafts[0], _members[3], 4);
                repository.AddMemberToDraft(_drafts[2], _members[3], 1);

            }
        }
        public Draft CreateDraft(string draftName, int ownerId, int numberOfPicksPerPlayer, bool isPublic)
        {
            var draft = new Draft
                            {
                                Name = draftName,
                                CreatedDate = DateTime.Now,
                                MaximumPicksPerMember = numberOfPicksPerPlayer,
                                Public = isPublic,
                                Started = false,
                                Finished = false,
                          	};

            IDraftRepository dr = new DraftRepository();
            IDraftMemberPositionsRepository dmpr = new DraftMemberPositionsRepository();
            IMemberRepository mr = new MemberRepository();

            draft.Owner = mr.GetById(ownerId);
            draft.DraftSize = 0;

            dr.Add(draft);

            return draft;
        }
        public void CanCreateDraftRandomPositions()
        {
            IDraftLogic draftLogic = new ModifiedRotisserieDraftLogic();
            var draft1 = draftLogic.CreateDraft("My Testdraft", _members[1].Id, 75, true);

            for (var i = 0; i < 8; i++)
            {
                draftLogic.AddMemberToDraft(draft1.Id, _members[i].Id);
            }

            var draft2 = draftLogic.CreateDraft("My Testdraft 2", _members[2].Id, 75, true);
            for (var i = 0; i < 8; i++)
            {
                draftLogic.AddMemberToDraft(draft2.Id, _members[i].Id);
            }

            var draft3 = draftLogic.CreateDraft("My Testdraft 3", _members[2].Id, 75, true);
            for (var i = 0; i < 8; i++)
            {
                draftLogic.AddMemberToDraft(draft3.Id, _members[i].Id);
            }

            var draft4 = draftLogic.CreateDraft("My Testdraft 4", _members[2].Id, 75, true);
            for (var i = 0; i < 8; i++)
            {
                draftLogic.AddMemberToDraft(draft4.Id, _members[i].Id);
            }

            var draft5 = draftLogic.CreateDraft("My Testdraft 5", _members[2].Id, 75, true);
            for (var i = 0; i < 8; i++)
            {
                draftLogic.AddMemberToDraft(draft5.Id, _members[i].Id);
            }

            draftLogic.StartDraft(draft1.Id, true);
            draftLogic.StartDraft(draft2.Id, true);
            draftLogic.StartDraft(draft3.Id, true);
            draftLogic.StartDraft(draft4.Id, true);
            draftLogic.StartDraft(draft5.Id, true);

            IDraftMemberPositionsRepository dmpr = new DraftMemberPositionsRepository();

            // use session to try to load the pick
            using (var session = _sessionFactory.OpenSession())
            {
                var fromDb1 = session.Get<Draft>(draft1.Id);
                var fromDb2 = session.Get<Draft>(draft2.Id);
                var fromDb3 = session.Get<Draft>(draft3.Id);
                var fromDb4 = session.Get<Draft>(draft4.Id);
                var fromDb5 = session.Get<Draft>(draft5.Id);

                var position1 = dmpr.GetDraftMemberPositionByDraftAndPosition(fromDb1, 1);
                var position2 = dmpr.GetDraftMemberPositionByDraftAndPosition(fromDb2, 1);
                var position3 = dmpr.GetDraftMemberPositionByDraftAndPosition(fromDb3, 1);
                var position4 = dmpr.GetDraftMemberPositionByDraftAndPosition(fromDb4, 1);
                var position5 = dmpr.GetDraftMemberPositionByDraftAndPosition(fromDb5, 1);

                if (position1.Member.Id != position2.Member.Id || position1.Member.Id != position3.Member.Id
                    || position1.Member.Id != position4.Member.Id || position1.Member.Id != position5.Member.Id)
                {
                    return;
                }

                Assert.Fail("Someone should get different place");
            }
        }