예제 #1
0
        public int AddJourney(IJourney journey)
        {
            Guard.WhenArgument(journey, journey.GetType().Name).IsNull().Throw();
            this.journeys.Add(journey);

            return(this.journeys.Count - 1);
        }
예제 #2
0
 public void Add(IJourney entity)
 {
     using (MilesDb db = new MilesDb())
     {
         var dto = MapToDto(entity);
         db.Journeys.Add(dto);
         db.SaveChanges();
         //db.Entry(dto).State = EntityState.Detached;
     }
 }
예제 #3
0
 public void Update(IJourney entity)
 {
     using (MilesDb db = new MilesDb())
     {
         var newValues = MapToDto(entity);
         var exiting   = db.Journeys.Single(s => s.Id == newValues.Id);
         if (exiting != null)
         {
             db.Journeys.Update(newValues);
             db.SaveChanges();
         }
     }
 }
예제 #4
0
        public Dto.Journey MapToDto(IJourney journey)
        {
            using (MilesDb db = new MilesDb())
            {
                var dto = new Dto.Journey
                {
                    Id            = journey.Id,
                    Distance      = journey.Distance,
                    StartLocation = LocationRepo.MapToDto(journey.StartLocation),
                    EndLocation   = LocationRepo.MapToDto(journey.EndLocation)
                };

                return(dto);
            }
        }
예제 #5
0
        static void Main(string[] args)
        {
            Horse horse = new Horse();
            //int legs = horse.NumberOfLegs();
            //Not Compile

            IJourney journeyHorse  = horse;
            int      legsInJourney = journeyHorse.NumberOfLegs();

            Console.WriteLine(legsInJourney);

            ILandBond landBondHorse = horse;
            int       legsOnHorse   = landBondHorse.NumberOfLegs();

            Console.WriteLine(legsOnHorse);
            Console.ReadKey();
        }
예제 #6
0
        private IJourney <TNode> GetShortestRouteBetweenSelf(TNode source)
        {
            var routeDictionary = GetShortestRoutes(source);
            var adjacentNodes   = GetAdjacentNodes(source);
            IJourney <TNode> shortestJourney = null;

            foreach (var node in adjacentNodes)
            {
                var currentRoute = routeDictionary[node];

                if ((currentRoute.NumberOfStops() > 0 && shortestJourney == null) ||
                    shortestJourney != null && shortestJourney.GetTime() > currentRoute.GetTime())
                {
                    currentRoute.WithPort(source);
                    shortestJourney = currentRoute.Clone() as IJourney <TNode>;
                }
            }
            return(shortestJourney);
        }
예제 #7
0
        public void ShouldAddTicketToDatabase_WhenParametersAreValid()
        {
            // Arrange
            var travellerFactoryMock = new Mock <ITravellerFactory>();

            var firstJourney  = new Mock <IJourney>();
            var secondJourney = new Mock <IJourney>();
            var journeysList  = new List <IJourney>()
            {
                firstJourney.Object,
                secondJourney.Object
            };

            var databaseMock = Helpers.InitializeDatabaseMock(journeys: journeysList);

            string journeyId          = "1";
            string administrativeCost = "100";
            var    parametersList     = new List <string>()
            {
                journeyId,
                administrativeCost
            };

            IJourney journeyIdParameter          = journeysList[int.Parse(journeyId)];
            decimal  administrativeCostParameter = decimal.Parse(administrativeCost);
            var      expectedTicket = new Ticket(journeyIdParameter, administrativeCostParameter);

            travellerFactoryMock.Setup(f => f.CreateTicket(journeyIdParameter, administrativeCostParameter))
            .Returns(expectedTicket);

            var ticketCommand = new CreateTicketCommand(travellerFactoryMock.Object, databaseMock.Object);

            // Act
            ticketCommand.Execute(parametersList);

            //Assert
            Assert.AreEqual(1, databaseMock.Object.Tickets.Count);
            Assert.AreEqual(expectedTicket, databaseMock.Object.Tickets.Single());
        }
예제 #8
0
        private void FormSearchRequest(bool isOneWay,
                                       string origin,
                                       string destination,
                                       string depDate,
                                       string retDate,
                                       bool onlyDirect,
                                       int numOfPass,
                                       string passClass)
        {
            List <ITrip> trips = entityFactory.CreateTrips();

            depDate = dateConverter.TryToConvert(depDate);
            retDate = dateConverter.TryToConvert(retDate);

            trips.Add(entityFactory.CreateTrip(origin, destination, depDate, onlyDirect));
            if (!isOneWay)
            {
                trips.Add(entityFactory.CreateTrip(destination, origin, retDate, onlyDirect));
            }

            journey = entityFactory.CreateJourney(trips, numOfPass, passClass);
        }
예제 #9
0
        public void ShouldCreateTicketThroughFactory_WhenParametersAreValid()
        {
            // Arrange
            var travellerFactoryMock = new Mock <ITravellerFactory>();

            var firstJourney  = new Mock <IJourney>();
            var secondJourney = new Mock <IJourney>();
            var journeysList  = new List <IJourney>()
            {
                firstJourney.Object,
                secondJourney.Object
            };

            var databaseMock = Helpers.InitializeDatabaseMock(journeys: journeysList);

            var ticketCommand = new CreateTicketCommand(travellerFactoryMock.Object, databaseMock.Object);

            string journeyId          = "1";
            string administrativeCost = "100";
            var    parametersList     = new List <string>()
            {
                journeyId,
                administrativeCost
            };

            IJourney journeyIdParameter          = journeysList[int.Parse(journeyId)];
            decimal  administrativeCostParameter = decimal.Parse(administrativeCost);

            // Act
            ticketCommand.Execute(parametersList);

            //Assert
            travellerFactoryMock
            .Verify(t => t.CreateTicket(journeyIdParameter, administrativeCostParameter),
                    Times.Once);
        }
예제 #10
0
 public void ConfirmSeatReservation(IJourney journey, int bookingId)
 {
     Console.WriteLine("{0} {1} Seat Reservation Confirmed for Booking {2}", (journey is ReturnJourney) ? "Return" : "Outward", Enum.GetName(typeof(ModeOfTransport), journey.ModeOfTransport), bookingId);
 }
예제 #11
0
 public Neg_Journey(IJourney p_data_journey)
 {
     _data_journey = p_data_journey;
 }
예제 #12
0
 public ITicket CreateTicket(IJourney journey, decimal administrativeCosts)
 {
     throw new NotImplementedException("You are invoking a AgencyFactory method that is not yet implemented!");
 }
 public ITicket CreateTicket(IJourney journey, decimal administrativeCosts)
 {
     return(new Ticket(new Journey(journey.StartLocation, journey.Destination, journey.Distance, journey.Vehicle), administrativeCosts));
 }
예제 #14
0
        private BreadthFirstSearchRoutesStatus <TNode> ProcessRoute(TNode destination, IRoute <TNode> route, IJourney <TNode> nextjourney, BreadthFirstSearchRoutesStatus <TNode> status)
        {
            //for testing purposes.
            //to prove that async is faster only if the proccess is slower.
            //Task.Delay(500);
            if (route.Destination.Equals(destination))
            {
                status.ResultJourneys.Add(nextjourney);
            }
            else
            {
                status.NodeToProcessQueue.Enqueue(new KeyValuePair <IJourney <TNode>, IRoute <TNode> >(nextjourney, route));
            }

            return(status);
        }
예제 #15
0
 public ITicket CreateTicket(IJourney journey, decimal administrativeCosts)
 {
     return(new Ticket(journey, administrativeCosts));
 }
예제 #16
0
 private void reservationCompleted(IJourney journey, int bookingId)
 {
     journey.IsReservationConfirmed = true;
     _dataService.ConfirmSeatReservation(journey, bookingId);
 }
예제 #17
0
 public Ticket(IJourney journey, decimal administrativeCosts)
 {
     this.journey             = journey ?? throw new ArgumentNullException();
     this.administrativeCosts = administrativeCosts;
 }
예제 #18
0
        public static void Set <TNode>(this Dictionary <TNode, KeyValuePair <int, IJourney <TNode> > > dictionary, TNode destination, int cost, IJourney <TNode> journey, IRouteRepository <TNode> routeRepository)
        {
            var completeRoute = journey ?? new Journey <TNode>(routeRepository);

            dictionary[destination] = new KeyValuePair <int, IJourney <TNode> >(cost, completeRoute);
        }
예제 #19
0
 public Ticket(IJourney journey, decimal administrativeCosts)
 {
     this.Journey             = journey;
     this.AdministrativeCosts = administrativeCosts;
 }
예제 #20
0
파일: Ticket.cs 프로젝트: Indeavr/Academy
 public Ticket(decimal administrativeCosts, IJourney journey)
 {
     this.AdministrativeCosts = administrativeCosts;
     this.Journey             = journey;
 }