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); }
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 }