Ejemplo n.º 1
0
        public int CreateInvitation(int buyerId, int boothId, DateTime date)
        {
            if (DoesInvitationExist(Seller.SellerId, buyerId))
            {

            }
            var newInvitation = new Model.Invitations
            {
                #if (DEBUG )
                InvitationId =  _uow.InvitationsRepository.All.Max(x=>x.InvitationId)+ 1 ,
                #endif
                BuyerId = buyerId,
                SellerId = Seller.SellerId,
                BoothId = boothId,
                Date = date,
                StatusId = (int) InvitationStatus.Values.Pending
            };
            _uow.InvitationsRepository.Add(newInvitation);
            //ONLY FOR
            _uow.Save();
            return (newInvitation.InvitationId);
        }
Ejemplo n.º 2
0
        public void Integration()
        {
            #region Seller Send Buyer Invitation and Seller Accept /Refuse

            Assert.AreEqual(0, GetCurrentSellerScheduledInvitationCount());
            Assert.AreEqual(0, GetCurrentBuyerScheduledInvitationCount());
            Assert.AreEqual(3, GetCurrentSellerInvitationCount());
            Assert.AreEqual(1, GetCurrentBuyerInvitationCount());

            if (!DoesInvitationExist(1, 4))
            {
                var newInvitation = new Model.Invitations
                {
                    BuyerId = 4,
                    SellerId = 1,
                    BoothId = 4,
                    Date = DateTime.Today.Date,
                    StatusId = (int)InvitationStatus.Values.Pending
                };
                _uow.InvitationsRepository.Add(newInvitation);
                _uow.Save();
                Assert.AreEqual(4, GetCurrentSellerInvitationCount());
                Assert.AreEqual(1, GetCurrentBuyerInvitationCount());
            }

            #endregion

            #region BuyerAcceptOrRefuseInvitation

            Assert.AreEqual(0, GetCurrentSellerAcceptedInvitationCount());
            Assert.AreEqual(0, GetCurrentBuyerAcceptedInvitationCount());
            BuyerAcceptInvitation();
            Assert.AreEqual(1, GetCurrentSellerAcceptedInvitationCount());
            Assert.AreEqual(1, GetCurrentBuyerAcceptedInvitationCount());

            BuyerRefuseInvitation();
            Assert.AreEqual(1, GetCurrentSellerAcceptedInvitationCount());
            Assert.AreEqual(1, GetCurrentBuyerAcceptedInvitationCount());
            Assert.AreEqual(0, GetCurrentSellerRefusedInvitationCount());
            Assert.AreEqual(0, GetCurrentBuyerRefusedInvitationCount());
            #endregion

            #region Seller Send a second Invitation to the Buyer, it won't be added because the invitation does exist

            Assert.AreEqual(3, GetCurrentSellerInvitationCount());
            Assert.AreEqual(1, GetCurrentBuyerInvitationCount());
            if (!DoesInvitationExist(1, 4))
            {
                var newSecondInvitation = new Model.Invitations
                {
                    BuyerId = 4,
                    SellerId = 1,
                    BoothId = 4,
                    Date = DateTime.Today.Date,
                    StatusId = (int)InvitationStatus.Values.Pending
                };
                _uow.InvitationsRepository.Add(newSecondInvitation);
                _uow.Save();
            }
            Assert.AreEqual(3, GetCurrentSellerInvitationCount());
            Assert.AreEqual(1, GetCurrentBuyerInvitationCount());


            #endregion

            #region Seller send an Invitation to a second Buyer

            Assert.AreEqual(3, GetCurrentSellerInvitationCount());
            Assert.AreEqual(1, GetCurrentBuyerInvitationCount());
            if (!DoesInvitationExist(1, 5))
            {
                var newThirdInvitation = new Model.Invitations
                {
                    BuyerId = 5,
                    SellerId = 1,
                    BoothId = 4,
                    Date = DateTime.Today.Date,
                    StatusId = (int)InvitationStatus.Values.Pending
                };
                _uow.InvitationsRepository.Add(newThirdInvitation);
                _uow.Save();
                Assert.AreEqual(4, GetCurrentSellerInvitationCount());
                Assert.AreEqual(1, GetCurrentBuyerInvitationCount());
            }

            #endregion

            #region Buyer View Invitation Schedule
            Assert.AreEqual(1, GetCurrentBuyerScheduledInvitationCount());

            #endregion

            #region Seller View Invitation Schedule
            Assert.AreEqual(1, GetCurrentSellerScheduledInvitationCount());
            #endregion

            #region Buyer Delete refused Invitation

            Assert.AreEqual(0, GetCurrentSellerRefusedInvitationCount());
            Assert.AreEqual(0, GetCurrentBuyerRefusedInvitationCount());
            var refusedInvitation = _uow.InvitationRefusedRepository.FindBy(x => x.BuyerId == BuyerId).LastOrDefault();
         
            if (refusedInvitation != null)
            {   
                int refusedInvitationid = refusedInvitation.InvitationId;
                _uow.InvitationRefusedRepository.Delete(refusedInvitation);
                _uow.Save();
                Assert.AreEqual(0, GetCurrentSellerRefusedInvitationCount());
                Assert.AreEqual(0, GetCurrentBuyerRefusedInvitationCount());

                #region Seller Send a new Invitation after the refused Invitation is deleted

                UpdateInvitation(refusedInvitationid, (int)InvitationStatus.Values.Pending);
                BuyerAcceptInvitation(refusedInvitationid);

                #region Buyer View Invitation Schedule
                Assert.AreEqual(1, GetCurrentBuyerScheduledInvitationCount());

                #endregion

                #region Seller View Invitation Schedule
                Assert.AreEqual(1, GetCurrentSellerScheduledInvitationCount());
                #endregion

                #endregion

            }



            #endregion

        }