public void ReservationValidCustomerType(CustomerType customerType)
        {
            var reservation = ReservationBuilder.New().SetCustomerType(customerType).Build();

            Assert.True(reservation.CustomerType == customerType);
            //Assert.Throws<ArgumentException>(() => ReservationBuilder.New().SetCustomerType(customerType).Build());
        }
Esempio n. 2
0
        public IActionResult CreateReservation(IFormCollection resForm)
        {
            // Initializing Variables
            Dictionary <string, object> resTemp = new Dictionary <string, object>();

            int guestId    = Convert.ToInt32(resForm["GuestId"]);
            var promoCheck = resForm["promoCode"].ToString();

            // Add all POST data into a dictionary
            resTemp.Add("guestID", guestId);
            resTemp.Add("numOfGuest", Convert.ToInt32(resForm["Number of Guests"]));
            resTemp.Add("roomType", resForm["Room Type"]);
            resTemp.Add("start", Convert.ToDateTime(resForm["Check-In Date/Time"]));
            resTemp.Add("end", Convert.ToDateTime(resForm["Check-Out Date/Time"]));
            resTemp.Add("remark", resForm["Remarks"].ToString());

            if (promoCheck == "true")
            {
                resTemp.Add("promoCode", resForm["Promotion Code"]);
            }
            else
            {
                resTemp.Add("promoCode", "");
            }

            // Create Reservation Object using Builder Pattern
            IReservationBuilder builder = new ReservationBuilder(_promoCodeService, _guestService, _roomGateway);
            var reservation             = _reservationDirector.BuildNewReservation(builder, resTemp);

            if (reservation.Item1 == null)
            {
                TempData["Message"] = reservation.Item2;
                return(RedirectToAction("CreateReservation", "ReservationCreation", new { GuestId = guestId }));
            }

            // Creating Reservation object and storing it to database
            _reservationService.CreateReservation(reservation.Item1);

            // Retrieve latest reservation id inserted into database
            var newReservationId = Convert.ToInt32(_reservationService.GetLatestReservation().GetReservation()["resID"]);

            // After completion of creation to redirect user to "/Reservation/ReservationView"
            TempData["Message"] = "Reservation Successfully Created";
            return(RedirectToAction("TransportReservation", "TransportReservation", new
            {
                GuestId = guestId,
                NumOfGuest = reservation.Item1.GetReservation()["numOfGuest"],
                ResId = newReservationId
            }));
        }
Esempio n. 3
0
        public void ForTentativeReservation_ShouldSucceed()
        {
            // Given
            var reservation = ReservationBuilder
                              .Create()
                              .Tentative()
                              .Build();

            // When
            reservation.Confirm();

            // Then
            reservation.Status.Should().Be(ReservationStatus.Confirmed);
            reservation.Version.Should().Be(2);

            var @event = reservation.PublishedEvent <ReservationConfirmed>();

            @event.Should().BeOfType <ReservationConfirmed>();
            @event.ReservationId.Should().Be(reservation.Id);
        }
Esempio n. 4
0
        /// <summary>
        /// Test dzia³ania dla przypadku, gdy jest iloœæ widzów, ale nie ma
        /// ceny od osoby. Cena od osoby powinna byæ ustawiona na wartoœæ
        /// gwarantuj¹c¹ minimalny przychód.
        /// </summary>
        public void TestNoDollar()
        {
            String s =
                "Date, November 5, Headcount, 250, City, Springfield, "
                + "  HasSite, false";
            ForgivingBuilder  b = new ForgivingBuilder();
            ReservationParser p = new ReservationParser(b);

            p.Parse(s);
            Reservation r = b.Build();
            //
            DateTime d = new DateTime(2000, 11, 5);

            d = ReservationBuilder.Futurize(d);
            //
            Assertion.AssertEquals(d, r.Date);
            Assertion.AssertEquals(250, r.Headcount);
            Assertion.Assert(r.Headcount * r.DollarsPerHead >= ReservationBuilder.MINTOTAL);
            Assertion.AssertEquals("Springfield", r.City);
            Assertion.AssertEquals(false, r.HasSite);
        }
Esempio n. 5
0
        public void TestNormal()
        {
            String s =
                "Date, November 5, Headcount, 250, City, Springfield, "
                + "DollarsPerHead, 9.95, HasSite, false";
            UnforgivingBuilder b = new UnforgivingBuilder();
            ReservationParser  p = new ReservationParser(b);

            p.Parse(s);
            Reservation r = b.Build();
            //
            DateTime d = new DateTime(2000, 11, 5);

            d = ReservationBuilder.Futurize(d);
            //
            Assert.AreEqual(d, r.Date);
            Assert.AreEqual(250, r.Headcount);
            Assert.AreEqual("Springfield", r.City);
            Assert.AreEqual(9.95, (double)r.DollarsPerHead, .01);
            Assert.AreEqual(false, r.HasSite);
        }
Esempio n. 6
0
        public void TestNoHeadcountNoDollar()
        {
            String s =
                "Date, November 5,   City, Springfield, "
                + "  HasSite, false";
            ForgivingBuilder  b = new ForgivingBuilder();
            ReservationParser p = new ReservationParser(b);

            p.Parse(s);
            Reservation r = b.Build();
            //
            DateTime d = new DateTime(2000, 11, 5);

            d = ReservationBuilder.Futurize(d);
            //
            Assert.AreEqual(d, r.Date);
            Assert.AreEqual(ReservationBuilder.MINHEAD, r.Headcount);
            Assert.AreEqual("Springfield", r.City);
            Assert.AreEqual((double)(ReservationBuilder.MINTOTAL / r.Headcount), (double)r.DollarsPerHead, .01);
            Assert.AreEqual(false, r.HasSite);
        }
Esempio n. 7
0
        public void ForValidParams_UpdatesSeatId()
        {
            // Given
            var reservation = ReservationBuilder
                              .Create()
                              .Tentative()
                              .Build();

            var newSeatId = Guid.NewGuid();

            // When
            reservation.ChangeSeat(newSeatId);

            // Then
            reservation.SeatId.Should().Be(newSeatId);
            reservation.Version.Should().Be(2);

            var @event = reservation.PublishedEvent <ReservationSeatChanged>();

            @event.Should().BeOfType <ReservationSeatChanged>();
            @event.ReservationId.Should().Be(reservation.Id);
            @event.SeatId.Should().Be(newSeatId);
        }
Esempio n. 8
0
 public ActionResult calcPath(string from, string dest, string date, string submit)
 {
     if (Session["UserName"] != null)
     {
         var c = db.Cities.SingleOrDefault(s => s.CityName == from);
         var d = db.Cities.SingleOrDefault(s => s.CityName == dest);
         Session["wrong source"] = null;
         Session["wrong dest"]   = null;
         Session["no path"]      = null;
         if (c == null)
         {
             Session["wrong source"] = true;
             return(RedirectToAction("Index", "Home"));
         }
         if (d == null)
         {
             Session["wrong dest"] = true;
             return(RedirectToAction("Index", "Home"));
         }
         Account            a = db.Accounts.Find(int.Parse(Session["AccountId"].ToString()));
         ReservationBuilder r;
         if (submit.Contains("cheapest"))
         {
             LinkedList <string> path = calcCheapestWay(from, dest);
             if (path.Count() == 0)
             {
                 Session["no path"] = true;
                 return(RedirectToAction("Index", "Home"));
             }
             r = new ReservationBuilder(path);
         }
         else
         {
             LinkedList <string> path = calcFastestWay(from, dest);
             if (path.Count() == 0)
             {
                 Session["no path"] = true;
                 return(RedirectToAction("Index", "Home"));
             }
             r = new ReservationBuilder(path);
         }
         r.bulidReservation();
         LinkedList <string> res = r.updateReservation();
         if (res != null)
         {
             Reservation reservation = new Reservation();
             reservation.AccountId = a.AccountId;
             reservation.Account   = a;
             reservation.Departure = date;
             foreach (string s in res)
             {
                 reservation.TheReservation += s + " | ";
             }
             db.Reservations.Add(reservation);
             db.SaveChanges();
             return(RedirectToAction("ShowReservation", "Reservations", reservation));
         }
         else
         {
             return(View());//pop up no path msg
         }
     }
     else
     {
         return(RedirectToAction("login", "Accounts")); //need to show "please log in first"+button
     }
 }