public ActionResult GetSingleLeap(int id) { var repository = new LeapRepository(); var singleLeap = repository.GetSingleLeap(id); return(Ok(singleLeap)); }
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); }
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); } }
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); } }
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(); } } }
public LeapsController() { _leapRepository = new LeapRepository(); }
public void saveCurrentBudgetBalanceToRepo(int newBalance) { var leapRepoInstance = new LeapRepository(); leapRepoInstance.saveBudget(newBalance); }
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(); }
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"); }