public ActionResult GetSingleLeap(int id)
        {
            var repository = new LeapRepository();
            var singleLeap = repository.GetSingleLeap(id);

            return(Ok(singleLeap));
        }
Beispiel #2
0
        public bool LeapCharge()
        {
            var leapRepo   = new LeapRepository();
            var currentBal = leapRepo.currentAvailableBudget();

            if (currentBal >= 1000)
            {
                var updatedBudget = currentBal - 1000;
                HasEnoughFunds = true;
                leapRepo.saveBudget(updatedBudget);
                Console.WriteLine();
                Console.WriteLine($"$1,000 has been deducted from your budget. Your new balance is ${updatedBudget}. You are good to leap!");
                Console.WriteLine();
                Console.WriteLine("Leap info:");
                Console.WriteLine();
            }
            else
            {
                Console.Clear();
                Console.BackgroundColor = ConsoleColor.Red;
                Console.WriteLine($"Your current balance of ${currentBal} is insufficient for the leap. Please add more funds!");
                Console.ResetColor();
                Console.WriteLine();
                var userMenu = new Menu();
                userMenu.MenuItems();
            }
            return(HasEnoughFunds);
        }
Beispiel #3
0
        public ActionResult RetrieveAllEventsAndLeaperInfo()
        {
            var repository   = new LeapRepository();
            var retrieveLeap = repository.RetrieveEventAndLeaperInfo();

            return(Ok(retrieveLeap));
        }
        public ActionResult GetLeap()
        {
            var repository = new LeapRepository();
            var getLeap    = repository.GetAllLeap();

            return(Ok(getLeap));
        }
        public ActionResult AddLeapee(CreateLeapRequest createRequest)
        {
            var repository   = new LeapRepository();
            var randomLeaper = repository.GetRandomLeaper();
            int @leaperId    = randomLeaper.Id;
            int @leapeeId    = repository.GetRandomLeapee().Id;
            int @eventId     = 0;
            var eventAssociatedWithLeapee = repository.GetEventAssociatedWithLeapee(leapeeId);

            if (eventAssociatedWithLeapee != null)
            {
                eventId = eventAssociatedWithLeapee.Id;
            }
            else
            {
                return(NotFound("Event already exist in another leap for that leapee. Please try again"));
            }

            if (randomLeaper.BudgetAmount > createRequest.Cost)
            {
                var newLeap = repository.AddLeapAndUpdateBudget(leaperId, leapeeId, eventId, createRequest.Cost);
                return(Created($"api/leapees/{newLeap.Id}", newLeap));
            }
            else
            {
                return(BadRequest("Sorry, you can not leap because you don't have enough budget. Better luck next time"));
            }
        }
        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);
            }
        }
Beispiel #7
0
        public ActionResult AddLeapee(CreateLeapRequest createRequest)
        {
            var repository   = new LeapRepository();
            var randomLeaper = repository.GetRandomLeaper();
            int @leaperId    = randomLeaper.Id;
            int @leapeeId    = repository.GetRandomLeapee().Id;
            int @eventId     = 0;

            if (randomLeaper.BudgetAmount > createRequest.Cost)
            {
                var newLeap = repository.RetrieveUpdatedBudgetFromLeap(leaperId, leapeeId, eventId, createRequest.Cost);
                return(Created($"api/leap/{newLeap.Id}", newLeap));
            }
            else
            {
                return(BadRequest("Sorry, you don't have enough money to leap."));
            }
        }
        public DateTime CurrentEventDate()
        {
            var leaps = new LeapRepository().GetAll();

            if (leaps.Count > 0)
            {
                var leap           = leaps.Last();
                var currentEventId = leap.EventId;

                var currentEvent = new EventRepository().GetEventById(currentEventId);
                var eventDate    = currentEvent.HistoricalDate;
                return(eventDate);
            }
            else
            {
                var eventDate = DateTime.Now;
                return(eventDate);
            }
        }
        public bool isLeapIdentical(Event randomEvent, Host randomHost)
        {
            var leaps = new LeapRepository().GetAll();

            if (leaps.Count < 1)
            {
                return(false);
            }
            var getLastLeap = leaps.Last();
            var lastHostId  = getLastLeap.HostId;
            var lastEventId = getLastLeap.EventId;

            if (lastHostId == randomHost.Id && lastEventId == randomEvent.Id)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
Beispiel #10
0
        public void MenuItems()
        {
            while (true)
            {
                var welcomeMessage = "  Welcome to Quantum Leap! Please enter a number to make your selection or type exit to end the game.";

                var option1TakeALeap       = "     1. Take your next leap";
                var option2FundMoreProject = "     2. Fund more projects";
                var option3LeapHistory     = "     3. List leap history";

                Console.WriteLine(welcomeMessage);
                Console.WriteLine();

                Console.WriteLine(option1TakeALeap);
                Console.WriteLine(option2FundMoreProject);
                Console.WriteLine(option3LeapHistory);

                var userInput = Console.ReadLine();
                Console.Clear();

                if (userInput == "1")
                {
                    var leap     = new Leap();
                    var leapRepo = new LeapRepository();

                    var leaperCanLeap = new LeaperCanLeap();
                    var canLeap       = leaperCanLeap.LeapCharge();

                    if (canLeap == true)
                    {
                        var quantumLeap = leap.createALeap();
                        Console.WriteLine($"{quantumLeap.Leaper} you have lept to, {quantumLeap.Date} {quantumLeap.Location}, you're apparently {quantumLeap.Host}");
                        leapRepo.SaveNewLeap(quantumLeap);
                        var menu = new Menu();
                        menu.MenuItems();
                    }
                }
                else if (userInput == "2")
                {
                    // Fund more project calls/method will be call here.
                    var currentAvailableFunds = new Budget();
                    var leapRepo       = new LeapRepository();
                    var currentBalance = leapRepo.currentAvailableBudget();



                    Console.WriteLine($"Your current available funds are ${currentBalance}. Add more funds y/n?");
                    var userResponse = Console.ReadLine().ToLower();

                    if (userResponse == "y")
                    {
                        Console.Clear();
                        Console.WriteLine("Please enter the amount of funds");
                        var enteredAmount = Console.ReadLine().ToCharArray();
                        foreach (var ea in enteredAmount)
                        {
                            if (!char.IsNumber(ea))
                            {
                                Console.WriteLine("Please enter numbers only");
                            }
                            else
                            {
                                string rebuilt = new string(enteredAmount);
                                var    currentBudgetBalance = Convert.ToInt32(rebuilt) + currentBalance;
                                Console.Clear();
                                Console.ForegroundColor = ConsoleColor.Green;
                                Console.WriteLine($"Your current available funds are ${currentBudgetBalance}");
                                Console.ResetColor();
                                Console.WriteLine();
                                leapRepo.saveBudget(currentBudgetBalance);
                                var menu = new Menu();

                                menu.MenuItems();
                            }
                        }
                    }
                    else if (userResponse == "n")
                    {
                        Console.WriteLine("You have chosen not to add funds");
                        var menu = new Menu();

                        menu.MenuItems();
                    }
                    else
                    {
                        Console.WriteLine("You have made an invalid selection.");
                        var menu = new Menu();

                        menu.MenuItems();
                    }

                    // Console.Clear();
                    break;
                }
                else if (userInput == "3")
                {
                    // Leap History class/method will be call here.
                    var leapRepo        = new LeapRepository();
                    var historicalLeaps = leapRepo.GetLeaps();
                    if (historicalLeaps.Count > 0)
                    {
                        for (var i = 0; i < historicalLeaps.Count; i++)
                        // foreach(Events Leap in historicalLeaps)
                        {
                            Console.ForegroundColor = ConsoleColor.Cyan;
                            Console.WriteLine($"Leap {i+1}: \n Leaper:{ historicalLeaps[i].Leaper},\n Date: { historicalLeaps[i].Date},\n Location: { historicalLeaps[i].Location},\n Host: { historicalLeaps[i].Host},\n IsPutRight: { historicalLeaps[i].isPutRight}\n\n");
                            Console.ResetColor();
                        }
                        //Console.WriteLine("List leap history class/method will be called.");
                        break;
                    }
                    else
                    {
                        Console.Clear();
                        Console.ForegroundColor = ConsoleColor.Red;
                        Console.WriteLine("Cannot show history of leaps because no one has lept yet.");
                        Console.ResetColor();
                        Console.WriteLine();
                    }
                }
                else if (userInput.ToLower() == "exit")
                {
                    Environment.Exit(0);
                }
                else
                {
                    Console.Clear();
                    Console.BackgroundColor = ConsoleColor.Red;
                    Console.WriteLine();
                    Console.WriteLine("Please enter a number or type exit to end the game!");
                    Console.ResetColor();
                    Console.WriteLine();
                }
            }
        }
Beispiel #11
0
 public LeapsController()
 {
     _leapRepository = new LeapRepository();
 }
Beispiel #12
0
        public void saveCurrentBudgetBalanceToRepo(int newBalance)
        {
            var leapRepoInstance = new LeapRepository();

            leapRepoInstance.saveBudget(newBalance);
        }
Beispiel #13
0
        static void Main(string[] args)
        {
            var budget = new Budget();

            var eventRepository = new EventRepository();

            eventRepository.PopulateEvents();

            var hostRepository = new HostRepository();

            hostRepository.CreateSeedDataHosts();

            var currentLeaper = new Leaper("Zack Taylor");

            var leapRepository = new LeapRepository();

            var action = "";

            do
            {
                Console.WriteLine("What do you want to do? [leap/fund/get history/exit]");
                action = Console.ReadLine();
                // leap
                if (action == "leap")
                {
                    if (budget.CheckBudget())
                    {
                        leapRepository.TakeALeap(currentLeaper, hostRepository, eventRepository);
                        var newLeapComplete = leapRepository.ReturnLastLeap();
                        Console.WriteLine($"Leap complete. You were hosted by " +
                                          $"{newLeapComplete.Host.Name} and you went to {newLeapComplete.Event.Location}.");
                    }
                    else
                    {
                        Console.WriteLine($"You need to add funds.");
                    }
                }

                // fund
                if (action == "fund")
                {
                    budget.AddFunds();
                    Console.WriteLine("You added $5000 to your budget");
                }

                // get history
                if (action == "get history")
                {
                    var leapHistory = leapRepository.GetLeapHistory(currentLeaper);
                    int leapCounter = 1;

                    foreach (var leap in leapHistory)
                    {
                        Console.WriteLine(leapCounter);
                        Console.WriteLine($"Location: {leap.Event.Location}");
                        Console.WriteLine($"Date: {leap.Event.Date.ToString("MM/dd/yyyy")}");
                        Console.WriteLine($"Leaper: {leap.Leaper.Name}");
                        Console.WriteLine($"Host: {leap.Host.Name}");
                        Console.WriteLine("");

                        leapCounter++;
                    }
                }
            } while (action != "exit");
        }
 public LeapController()
 {
     _validator      = new CreateLeapRequestValidator();
     _leapRepository = new LeapRepository();
 }
Beispiel #15
0
        public void DisplayUserInterface()
        {
            ChooseLeaperGui();

            Console.WriteLine($"Welcome back {_leaper.Name}, what would you like to do?\n");

            var selection = "";

            do
            {
                Console.ForegroundColor = ConsoleColor.Magenta;
                Console.Write("Type");
                Console.ForegroundColor = ConsoleColor.Cyan;
                Console.Write(" \"leap\" ");
                Console.ForegroundColor = ConsoleColor.Magenta;
                Console.WriteLine("to take a leap.");

                Console.Write("Type");
                Console.ForegroundColor = ConsoleColor.Cyan;
                Console.Write(" \"fund\" ");
                Console.ForegroundColor = ConsoleColor.Magenta;
                Console.WriteLine("to add more money to your budget.");

                Console.Write("Type");
                Console.ForegroundColor = ConsoleColor.Cyan;
                Console.Write(" \"history\" ");
                Console.ForegroundColor = ConsoleColor.Magenta;
                Console.WriteLine("for a list of your past leaps.");

                Console.Write("Type");
                Console.ForegroundColor = ConsoleColor.Cyan;
                Console.Write(" \"quit\" ");
                Console.ForegroundColor = ConsoleColor.Magenta;
                Console.WriteLine("to close up shop and go home.\n");
                Console.ForegroundColor = ConsoleColor.White;

                selection = Console.ReadLine();
                Console.Clear();

                switch (selection)
                {
                case "history":
                    var leapRepo    = new LeapRepository();
                    var leapHistory = leapRepo.GetLeapHistory();

                    if (leapHistory == "You haven't made any leaps yet.\n")
                    {
                        Console.ForegroundColor = ConsoleColor.Yellow;
                        Console.WriteLine(leapHistory);
                        Console.ForegroundColor = ConsoleColor.White;
                    }
                    else
                    {
                        Console.ForegroundColor = ConsoleColor.Cyan;
                        Console.WriteLine(leapHistory);
                        Console.ForegroundColor = ConsoleColor.White;
                    }

                    Console.WriteLine("What would you like to do next?\n");
                    break;

                case "fund":
                    Console.ForegroundColor = ConsoleColor.Magenta;
                    Console.WriteLine("Enter the amount.\n");
                    Console.ForegroundColor = ConsoleColor.Green;
                    var fundAmount = Console.ReadLine();
                    var budget     = _lab.AddFunds(fundAmount);
                    Console.WriteLine();
                    Console.WriteLine($"You added ${fundAmount} to your budget. Your budget is ${budget}.\n");
                    Console.ForegroundColor = ConsoleColor.White;

                    Console.WriteLine("What would you like to do next?\n");
                    break;

                case "leap":
                    _lab.AttemptLeap(_leaper);

                    Console.WriteLine("What would you like to do next?\n");
                    break;

                case "quit":
                    Console.ForegroundColor = ConsoleColor.Blue;
                    Console.WriteLine($"Have a good night {_leaper.Name}.");
                    Console.ForegroundColor = ConsoleColor.White;
                    break;

                default:
                    Console.ForegroundColor = ConsoleColor.Yellow;
                    Console.WriteLine("That is an invalid request. Please try again.\n");
                    Console.ForegroundColor = ConsoleColor.White;

                    Console.WriteLine($"What would you like to do {_leaper.Name}?\n");
                    break;
                }
            }while (selection != "quit");
        }