コード例 #1
0
ファイル: UnitTest1.cs プロジェクト: eneaneli/BusCompanySDM
        public void InitialPriceTest1()
        {
            IBusCompany bus       = new BusCompany();
            var         initPrice = 130;

            Assert.IsTrue(bus.TotalCost(1, 0) == initPrice);
        }
コード例 #2
0
        public string PublishReview(string[] data)
        {
            int customerId = int.Parse(data[1]);

            decimal grade = decimal.Parse(data[2]);

            string busCompanyName = data[3];

            string content = data[4];

            Customer customer = unit.Customers.GetById(customerId);

            BusCompany busCompany = unit.BusCompanies.Find(x => x.Name == busCompanyName).FirstOrDefault();

            Review review = new Review()
            {
                BusCompany = busCompany,
                Content    = content,
                Customer   = customer,
                DateAndTimeOfPublishing = DateTime.Now,
                Grade = grade
            };

            unit.Reviews.Add(review);

            unit.Save();

            string result =
                $"Customer {customer.FirstName + " " + customer.LastName} published review for company {busCompanyName}";

            return(result);
        }
コード例 #3
0
        public void SetToBackBusReservationToNewTravelPackage(TravelPackage travelPackage)
        {
            var reservationBusRequest = new BusReservationsToTravelPackageRequest
            {
                TripID    = travelPackage.ToBackBus.TripID,
                SeatCount = travelPackage.ReservationAmount
            };

            //BusCompany BusCompany = UnitOfWork.BusCompanyRepository.GetByID(travelPackage.ToBackBus.IdAPI_Bus);

            BusCompany BusCompany = new BusCompany
            {
                APIURLToReserveSeatToTravelPackage = "http://demo4736431.mockable.io/ReserverBusSeat",
            };

            var consumerBuss = new Consumer <List <BusReservationsToTravelPackageResponse> >();

            List <BusReservationsToTravelPackageResponse> getSeatsResponse = consumerBuss.ReLoadEntities(BusCompany.APIURLToReserveSeatToTravelPackage, "GET", reservationBusRequest).Result;

            foreach (var item in getSeatsResponse)
            {
                var auxSeat = new BusReservedSeat()
                {
                    TripID          = item.TripID,
                    Id_ReservedSeat = item.BookingID,
                    Bus             = UnitOfWork.BusRepository.GetByID(item.TripID),
                    TravelPackage   = travelPackage,
                    Available       = true
                };
                auxSeat.Bus.BusReservedSeat.Add(auxSeat);
                UnitOfWork.BusRepository.Update(auxSeat.Bus);
            }
            UnitOfWork.Save();
        }
        public string Execute(string[] arguments)
        {
            Check.CheckLength(1, arguments);
            int companyId = int.Parse(arguments[0]);

            bool isCompanyExist = this.busCompanyService.Exists(companyId);

            if (!isCompanyExist)
            {
                throw new ArgumentException(string.Format(AppConstants.BusCompanyDoesNotExist, companyId));
            }

            BusCompany busCompany = this.busCompanyService.ById(companyId);

            Review[] reviews = this.reviewService.PrintReviews(companyId);

            StringBuilder sb = new StringBuilder();

            sb.AppendLine($"Bus company: {busCompany.Name}");
            foreach (Review review in reviews)
            {
                sb.AppendLine($"{review.Customer.FirstName} {review.Customer.LastName}");
                sb.AppendLine($"{review.Grade} {review.Published}");
                sb.AppendLine($"{review.Content}");
            }

            return(sb.ToString().Trim());
        }
コード例 #5
0
        public void SetToBackBusReservationToNewTravelPackage(TravelPackage travelPackage)
        {
            var reservationBusRequest = new BusReservationsToTravelPackageRequest
            {
                TripID    = travelPackage.ToBackBus.TripID,
                SeatCount = travelPackage.ReservationAmount
            };

            BusCompany BusCompany = UnitOfWork.BusCompanyRepository.GetByID(travelPackage.ToBackBus.IdAPI_Bus);

            var consumerBuss = new Consumer <List <BusReservationsToTravelPackageResponse> >();

            List <BusReservationsToTravelPackageResponse> getSeatsResponse = consumerBuss.ReLoadEntities(BusCompany.APIURLToReserveSeatToTravelPackage, "POST", reservationBusRequest).Result;

            foreach (var item in getSeatsResponse)
            {
                var auxSeat = new BusReservedSeat()
                {
                    IdAPI_Bus          = item.TripID,
                    TripID             = item.TripID,
                    Id_BusReservedSeat = item.BookingID,
                    Bus = UnitOfWork.BusRepository.GetByID(item.TripID)
                };
                auxSeat.Bus.BusReservedSeat.Add(auxSeat);
                UnitOfWork.BusReservedSeatRepository.Insert(auxSeat);
                UnitOfWork.BusRepository.Update(auxSeat.Bus);
            }
            UnitOfWork.Save();
        }
コード例 #6
0
        public string Execute(string[] arguments)
        {
            Check.CheckLength(4, arguments);
            int    customerId = int.Parse(arguments[0]);
            int    companyId  = int.Parse(arguments[1]);
            string content    = arguments[2];
            int    grade      = int.Parse(arguments[3]);

            bool isCustomerExist = this.customerService.Exists(customerId);

            if (!isCustomerExist)
            {
                throw new ArgumentException(string.Format(AppConstants.CustomerDoesNotExist, customerId));
            }

            bool isCompanyExist = this.busCompanyService.Exists(companyId);

            if (!isCompanyExist)
            {
                throw new ArgumentException(string.Format(AppConstants.BusCompanyDoesNotExist, companyId));
            }

            if (grade <= 0 || grade > 10)
            {
                throw new ArgumentException(AppConstants.InvalidGrade);
            }

            this.reviewService.AddReview(customerId, companyId, content, grade);
            BusCompany busCompany = this.busCompanyService.ById(companyId);
            Customer   customer   = this.customerService.ById(customerId);

            return(string.Format(AppConstants.AddReview, customer.FirstName, customer.LastName, busCompany.Name));
        }
コード例 #7
0
        public ActionResult DeleteConfirmed(int id)
        {
            BusCompany busCompany = db.BusCompanies.Find(id);

            db.BusCompanies.Remove(busCompany);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
        public BusCompany ByName(string name)
        {
            BusCompany busCompany = this.dbContext
                                    .BusCompanies
                                    .FirstOrDefault(bc => bc.Name == name);

            return(busCompany);
        }
        public BusCompany ById(int id)
        {
            BusCompany busCompany = this.dbContext
                                    .BusCompanies
                                    .FirstOrDefault(bc => bc.Id == id);

            return(busCompany);
        }
コード例 #10
0
        public void TotalCostInitialFee_Test()
        {
            var bus = new BusCompany();

            var actualCost = bus.TotalCost(0, 0);

            Assert.AreEqual(130, actualCost);
        }
コード例 #11
0
ファイル: UnitTest1.cs プロジェクト: eneaneli/BusCompanySDM
        public void DistanceLongPeopleTest6()
        {
            IBusCompany bus       = new BusCompany();
            var         km        = 500;
            var         ppl       = 100;
            var         priceprkm = 2.25;

            Assert.IsTrue(bus.TotalCost(ppl, km) == 130 + km * priceprkm);
        }
コード例 #12
0
ファイル: UnitTest1.cs プロジェクト: eneaneli/BusCompanySDM
        public void DistanceMediumPeopleTest4()
        {
            IBusCompany bus       = new BusCompany();
            var         km        = 100;
            var         ppl       = 12;
            var         priceprkm = 3;

            Assert.IsTrue(bus.TotalCost(ppl, km) == 130 + km * priceprkm);
        }
コード例 #13
0
        public void TotalCostBelow100Km_Test()
        {
            var bus = new BusCompany();

            //Number of passengers doesn't matter, kilometers below 100 at rate 3.2 pr. km
            var actualCost = bus.TotalCost(1000, 99);

            Assert.AreEqual(316.8 + 130, actualCost);
        }
コード例 #14
0
ファイル: UnitTest1.cs プロジェクト: eneaneli/BusCompanySDM
        public void DistanceShortTest2()
        {
            IBusCompany bus       = new BusCompany();
            var         km        = 1;
            var         ppl       = 1;
            var         priceprkm = 3.20;

            Assert.IsTrue(bus.TotalCost(ppl, km) == 130 + priceprkm * km);
        }
コード例 #15
0
        public void PublishReview(Customer customer, float grade, BusCompany busCompany, string content)
        {
            var review = new Review {
                Customer = customer, BusCompany = busCompany, ReviewContent = content, Grade = grade
            };

            context.Reviews.Add(review);
            context.SaveChanges();
        }
コード例 #16
0
 public ActionResult Edit([Bind(Include = "Id,Name")] BusCompany busCompany)
 {
     if (ModelState.IsValid)
     {
         db.Entry(busCompany).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     return(View(busCompany));
 }
コード例 #17
0
ファイル: UnitTest1.cs プロジェクト: eneaneli/BusCompanySDM
        public void AnotherTestForTravis()
        {
            IBusCompany bus       = new BusCompany();
            var         km        = 100;
            var         ppl       = 100;
            var         initprice = 130;
            var         priceprkm = 3;

            Assert.IsTrue(bus.TotalCost(ppl, km) == initprice + km * priceprkm);
        }
コード例 #18
0
ファイル: UnitTest1.cs プロジェクト: eneaneli/BusCompanySDM
        public void DistanceMediumPersonTest3()
        {
            IBusCompany bus = new BusCompany();

            var km        = 100;
            var ppl       = 1;
            var priceprkm = 2.75;

            Assert.IsTrue(bus.TotalCost(ppl, km) == 130 + km * priceprkm);
        }
コード例 #19
0
        public void TotalCostAtOrAbove500km_Test()
        {
            var bus = new BusCompany();

            //Kilometers at or above 500, rate is 2.25.
            var actualCost = bus.TotalCost(0, 500);

            //Assert with 500 or above kilometers
            Assert.AreEqual(1125 + 130, actualCost);
        }
コード例 #20
0
        public ActionResult Create([Bind(Include = "Id,Name")] BusCompany busCompany)
        {
            if (ModelState.IsValid)
            {
                db.BusCompanies.Add(busCompany);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(busCompany));
        }
        public string Execute(string[] arguments)
        {
            Check.CheckLength(8, arguments);
            string originBusStation      = arguments[0];
            string destinationBusStation = arguments[1];
            string busCompanyName        = arguments[2];
            string statusString          = arguments[3];
            string departureDate         = arguments[4];
            string departureTime         = arguments[5];
            string arrivalDate           = arguments[6];
            string arrivalTime           = arguments[7];

            bool isOriginExist      = this.busStationService.Exists(originBusStation);
            bool isDestinationExist = this.busStationService.Exists(destinationBusStation);

            if (!isOriginExist || !isDestinationExist)
            {
                throw new ArgumentException(AppConstants.InvalidTowns);
            }

            bool isCompanyExist = this.busCompanyService.Exists(busCompanyName);

            if (!isCompanyExist)
            {
                throw new ArgumentException(string.Format(AppConstants.BusCompanyDoesNotExist, busCompanyName));
            }

            bool isValidStatus = Enum.TryParse <Status>(statusString, out Status status);

            if (!isValidStatus)
            {
                throw new ArgumentException(AppConstants.NotValidStatus);
            }

            string departureDateTime = $"{departureDate} {departureTime}";
            string arrivalDateTime   = $"{arrivalDate} {arrivalTime}";

            DateTime departure;
            DateTime arrival;
            bool     isValidDeparture = DateTime.TryParseExact(departureDateTime, AppConstants.DateTime, CultureInfo.InvariantCulture, DateTimeStyles.None, out departure);
            bool     isValidArrival   = DateTime.TryParseExact(arrivalDateTime, AppConstants.DateTime, CultureInfo.InvariantCulture, DateTimeStyles.None, out arrival);

            if (!isValidDeparture || !isValidArrival)
            {
                throw new ArgumentException(AppConstants.InvalidDateTimeFormat);
            }

            BusStation origin     = this.busStationService.ByName(originBusStation);
            BusStation destiation = this.busStationService.ByName(destinationBusStation);
            BusCompany busCompany = this.busCompanyService.ByName(busCompanyName);

            this.tripService.Add(origin.Id, destiation.Id, busCompany.Id, statusString, departure, arrival);
            return(AppConstants.AddTrip);
        }
        public void Add(string name)
        {
            BusCompany busCompany = new BusCompany()
            {
                Name = name
            };

            this.dbContext.BusCompanies.Add(busCompany);

            this.dbContext.SaveChanges();
        }
コード例 #23
0
ファイル: Engine.cs プロジェクト: Valentin9003/CSharp
        private BusCompany[] GetBusCompanies(DataGenerator generator, Country[] countries, int seedCount)
        {
            var busCompanies = new BusCompany[seedCount];

            for (int i = 0; i < busCompanies.Length; i++)
            {
                var name    = generator.GenerateString();
                var country = generator.GetElementFromSequence(countries);
                busCompanies[i] = new BusCompany(name, country);
            }

            return(busCompanies);
        }
コード例 #24
0
        // GET: BusCompanies/Delete/5
        public ActionResult Delete(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            BusCompany busCompany = db.BusCompanies.Find(id);

            if (busCompany == null)
            {
                return(HttpNotFound());
            }
            return(View(busCompany));
        }
コード例 #25
0
        public void TotalCost100to499km_Test()
        {
            var bus = new BusCompany();

            //Kilometers above 100 and below 500, if below 12 passengers rate is 2.75, otherwise rate is 3.00
            var actualCost1 = bus.TotalCost(12, 150);

            var actualCost2 = bus.TotalCost(11, 150);

            //Assert with Above 12 Passengers
            Assert.AreEqual(450 + 130, actualCost1);
            //Assert with Below 12 Passengers
            Assert.AreEqual(412.5 + 130, actualCost2);
        }
コード例 #26
0
        public void AddReview(string content, float grade, BusCompany busCompany, Customer customer)
        {
            Review review = new Review
            {
                Content        = content,
                Grade          = grade,
                BusCompany     = busCompany,
                Customer       = customer,
                PublishingDate = DateTime.Now
            };

            context.Reviews.Add(review);

            context.SaveChanges();
        }
コード例 #27
0
        public void CreateBusCompany(string name, string nationality)
        {
            var busCompany = new BusCompany()
            {
                Name        = name,
                Nationality = nationality
            };

            this._dbContext
            .BusCompanies
            .Add(busCompany);

            this._dbContext
            .SaveChanges();
        }
コード例 #28
0
        public IEnumerable <AuxBus> GetBuses(DateTime toDay, City fromPlace, City toPlace)
        {
            var getBusRequest = new GetBusRequest
            {
                Origin      = fromPlace.Name,
                Destination = toPlace.Name,
                Date        = toDay
            };

            //BusCompany BusCompany = UnitOfWork.BusCompanyRepository.Get().FirstOrDefault();
            BusCompany BusCompany = new BusCompany
            {
                Name             = "Nombre",
                APIURLToGetBuses = "http://demo4736431.mockable.io/GetBuses"
            };


            var consumerBuss = new Consumer <List <BusResponse> >();

            List <BusResponse> getBusResponse = consumerBuss.ReLoadEntities(BusCompany.APIURLToGetBuses, "GET", getBusRequest).Result;

            List <AuxBus> listOfBus = new List <AuxBus>();

            foreach (var item in getBusResponse)
            {
                var auxBus = new AuxBus
                {
                    IdAPI_Bus         = item.TripID,
                    TripID            = item.TripID,
                    Destination       = item.Destination,
                    Origin            = item.Origin,
                    DateTimeArrival   = item.DateTimeArrival,
                    DateTimeDeparture = item.DateTimeDeparture,
                    Company           = item.Company,
                    BusCompany        = BusCompany,
                    Class             = item.Class,
                    Capacity          = item.Capacity,
                    Price             = (float)item.Price,
                    NotReservedSeats  = item.AvailableSeats
                };

                UnitOfWork.AuxBusRepository.Insert(auxBus);

                listOfBus.Add(auxBus);
            }
            UnitOfWork.Save();
            return(listOfBus);
        }
コード例 #29
0
        public ActionResult AddNewCompany([Bind(Include = "Id,Name")] BusCompany busCompany)
        {
            if (ModelState.IsValid)
            {
                if (db.BusCompanies.Any(o => o.Name == busCompany.Name))
                {
                    ViewBag.ErrorMessage = "Company exists!";
                }
                else
                {
                    db.BusCompanies.Add(busCompany);
                    db.SaveChanges();
                    return(RedirectToAction("Index", "BusCompanies"));
                }
            }

            return(View(busCompany));
        }
コード例 #30
0
        public string Execute(string[] data)
        {
            int    customerId     = int.Parse(data[0]);
            float  grade          = float.Parse(data[1]);
            string busCompanyName = data[2];
            string content        = data[3];

            Customer   customer   = customerService.GetCustomerById(customerId);
            BusCompany busCompany = busCompanyService.GetBusCompanyByName(busCompanyName);

            if (customer == null || busCompany == null)
            {
                throw new ArgumentException($"Incorecet parameters!");
            }

            this.reviewService.AddReview(content, grade, busCompany, customer);

            return($"Customer {customer.FirstName} {customer.LastName} published review for company {busCompany.Name}");
        }