//Execution method that will do the "work" private bool Execution_Exists(string name, bool isAccountName) { if (isAccountName) { var result = false; var dbHandler = new StarWarsContext { ConnectionString = ConnectionString }; foreach (var account in dbHandler.Accounts) { if (account.AccountName == name) { result = true; } } return(result); } else { var result = false; var dbHandler = new StarWarsContext { ConnectionString = ConnectionString }; foreach (var account in dbHandler.Users) { if (account.Name == name) { result = true; } } return(result); } }
private Receipt Execution_SendInvoice(Account account, double minutes) { var price = _CalculatePrice(account.SpaceShip, minutes); var endTime = DateTime.Now.AddMinutes(minutes); var receipt = new Receipt { Account = account, Price = price, StartTime = DateTime.Now.ToString("g"), EndTime = endTime.ToString("g") }; if (ConnectionString == null) { throw new Exception("The static property ConnectionString has not been assigned.", new Exception( "Please assign a value to the static property ConnectionString before calling any methods")); } var dbHandler = new StarWarsContext { ConnectionString = ConnectionString }; dbHandler.Receipts.Update(receipt); dbHandler.SaveChanges(); //TODO return(receipt); }
private List <Receipt> _GetAccountReceipts(Account account) { var dbHandler = new StarWarsContext { ConnectionString = ConnectionString }; return(dbHandler.Receipts.Include(a => a.Account) .Where(receipt => receipt.Account.AccountName == account.AccountName).ToList()); }
public static void ReRegisterShip(Account account, SpaceShip ship) { ship.SpaceShipID = account.SpaceShip.SpaceShipID; account.SpaceShip = ship; var dbHandler = new StarWarsContext { ConnectionString = ConnectionString }; dbHandler.SpaceShips.Update(ship); dbHandler.SaveChanges(); }
private List <Receipt> GetAccountReceipts(int accountId) { var receiptList = new List <Receipt>(); var dbHandler = new StarWarsContext { ConnectionString = ConnectionString }; foreach (var receipt in dbHandler.Receipts) { if (receipt.Account.AccountID == accountId) { receiptList.Add(receipt); } } return(receiptList); }
private Account Execution_ValidateLogin(string accountName, string passwordInput) { Account accountHolder = null; var dbHandler = new StarWarsContext { ConnectionString = ConnectionString }; foreach (var account in dbHandler.Accounts.Include(a => a.User).Include(a => a.SpaceShip) .Include(h => h.User.Homeplanet)) { if (account.AccountName == accountName && account.Password == passwordInput) { accountHolder = account; } } return(accountHolder); }
private bool Execution_Exists(User inputUser) { var result = false; var dbHandler = new StarWarsContext { ConnectionString = ConnectionString }; foreach (var user in dbHandler.Users) { if (user.Name == inputUser.Name) { result = true; } } return(result); }
//Async method. Below will call upon a private corresponding method in another thread. private void _Register(User inputUser, SpaceShip inputShip, string accountName, string password) { var dbHandler = new StarWarsContext { ConnectionString = ConnectionString }; var outputAccount = new Account { AccountName = accountName, Password = PasswordHashing.HashPassword(password), User = inputUser, SpaceShip = inputShip }; inputUser.Homeplanet = dbHandler.Homeworlds.FirstOrDefault(g => g.Name == inputUser.Homeplanet.Name) ?? inputUser.Homeplanet; dbHandler.Accounts.Add(outputAccount); dbHandler.SaveChanges(); }
private (bool isOpen, DateTime nextAvailable) _CheckParkingStatus() { var dbHandler = new StarWarsContext { ConnectionString = ConnectionString }; var ongoingParkings = new List <Receipt>(); foreach (var receipts in dbHandler.Receipts) { if (DateTime.Parse(receipts.EndTime) > DateTime.Now) { ongoingParkings.Add(receipts); } } var nextAvailable = DateTime.Now; var isOpen = false; if (ongoingParkings.Count >= ParkingSlots) { //Setting nextAvailable 10 years ahead so the loop will always start running. nextAvailable = DateTime.Now.AddYears(10); var cachedNow = DateTime.Now; //Caching DateTimeNow in case loops takes longer than expected, to ensure that time moving forward doesn't break the loop. foreach (var receipt in ongoingParkings) { var endTime = DateTime.Parse(receipt.EndTime); if (endTime > cachedNow && endTime < nextAvailable) { nextAvailable = endTime; } } } else { isOpen = true; } return(isOpen, nextAvailable); }