Exemple #1
0
        private void ChooseLeaperGui()
        {
            var leaperRepo = new LeaperRepository();
            var leapers    = leaperRepo.GetAll();

            Console.ForegroundColor = ConsoleColor.White;
            Console.WriteLine("Welcom to Quantum Leap. What is your name?\n");

            foreach (var leaper in leapers)
            {
                Console.ForegroundColor = ConsoleColor.Magenta;
                Console.WriteLine(leaper.Name);
                Console.ForegroundColor = ConsoleColor.White;
            }
            Console.WriteLine();

            Console.ForegroundColor = ConsoleColor.White;
            var selection = Console.ReadLine();

            Console.ForegroundColor = ConsoleColor.White;

            _leaper = leapers.Find(leaper => leaper.Name.ToLower() == selection.ToLower());
            if (_leaper == null)
            {
                Console.Clear();
                Console.ForegroundColor = ConsoleColor.Yellow;
                Console.WriteLine("Sorry, you do not appear to be an authorized leaper. Talk to Jason Lee Scott for more info, or try again.\n");
                Console.ForegroundColor = ConsoleColor.White;
            }


            while (_leaper == null)
            {
                Console.WriteLine("What is your name?\n");
                foreach (var leaper in leapers)
                {
                    Console.ForegroundColor = ConsoleColor.Magenta;
                    Console.WriteLine(leaper.Name);
                    Console.ForegroundColor = ConsoleColor.White;
                }
                Console.WriteLine();
                selection = Console.ReadLine();
                _leaper   = leapers.Find(leaper => leaper.Name.ToLower() == selection.ToLower());
                if (_leaper == null)
                {
                    Console.Clear();
                    Console.ForegroundColor = ConsoleColor.Yellow;
                    Console.WriteLine("Sorry, you do not appear to be an authorized leaper. Talk to Jason Lee Scott for more info, or try again.\n");
                    Console.ForegroundColor = ConsoleColor.White;
                }
            }
            Console.Clear();
        }
        public void AttemptLeap(Leaper leaper)
        {
            Event randomEvent;
            Host  randomHost;

            while (true)
            {
                randomEvent = new EventRepository().GetRandom();

                randomHost = new HostRepository().GetRandom();

                bool compareHostAndEventWithLastLeap = isLeapIdentical(randomEvent, randomHost);
                if (!compareHostAndEventWithLastLeap)
                {
                    break;
                }
            }

            var currentDate = CurrentEventDate();

            int eventsDateDifference = DateDistance(currentDate, randomEvent);

            int dailyCostOfTravel = 1000 * eventsDateDifference;

            if (dailyCostOfTravel > _budget)
            {
                Console.ForegroundColor = ConsoleColor.Yellow;
                Console.WriteLine("Not enough funds to leap to that spot in time.\n");
                Console.ForegroundColor = ConsoleColor.Red;
                Console.WriteLine($"Your current budget is only ${_budget}. The cost of that leap is {dailyCostOfTravel}.\n");
                Console.ForegroundColor = ConsoleColor.White;
            }
            else
            {
                Leap leap = new Leap(randomEvent.Id, leaper.Id, randomHost.Id);
                SubtractFunds(dailyCostOfTravel);
                LeapRepository makeLeap = new LeapRepository();
                makeLeap.Add(leap);
                Console.ForegroundColor = ConsoleColor.Green;
                Console.WriteLine($"Congrats {leaper.Name}, you have leaped into {randomHost.Name}. You are at {randomEvent.Location} in the year {randomEvent.HistoricalDate.Year}\n");
                Console.ForegroundColor = ConsoleColor.White;

                ButterflyEffect(randomEvent);
            }
        }