/// <summary>Deletes a <see cref="FuelTransaction"/> from the database.</summary> /// <param name="deleteTransaction"><see cref="FuelTransaction"/> to be deleted</param> /// <returns>Returns true if deletion is successful</returns> public Task <bool> DeleteTransaction(FuelTransaction deleteTransaction) { SQLiteCommand cmd = new SQLiteCommand { CommandText = "DELETE FROM Transactions WHERE [TransactionID] = @transactionID" }; cmd.Parameters.AddWithValue("@transactionID", deleteTransaction.TranscationID); return(SQLiteHelper.ExecuteCommand(_con, cmd)); }
/// <summary>Attempts to add a <see cref="FuelTransaction"/> to the database.</summary> /// <returns>Returns true if successfully added</returns> private async Task <bool> ModifyTransaction() { ModifiedTransaction = new FuelTransaction(UnmodifiedTransaction.TranscationID, UnmodifiedTransaction.VehicleID, DateTimeHelper.Parse(TransactionDate.SelectedDate), TxtStore.Text, Int32Helper.Parse(TxtOctane.Text), DecimalHelper.Parse(TxtDistance.Text), DecimalHelper.Parse(TxtGallons.Text), DecimalHelper.Parse(TxtPrice.Text), DecimalHelper.Parse(TxtOdometer.Text), Int32Helper.Parse(TxtRange.Text)); if (await AppState.DatabaseInteraction.ModifyTransaction(UnmodifiedTransaction, ModifiedTransaction)) { CurrentVehicle.ModifyTransaction(UnmodifiedTransaction, ModifiedTransaction); return(true); } return(false); }
/// <summary>Adds a new <see cref="FuelTransaction"/> to the database.</summary> /// <param name="newTransaction"><see cref="FuelTransaction"/> to be added</param> /// <returns>Returns true if add is successful</returns> public Task <bool> NewTransaction(FuelTransaction newTransaction) { SQLiteCommand cmd = new SQLiteCommand { CommandText = "INSERT INTO Transactions([VehicleID], [Store], [Date], [Octane], [Distance], [Gallons], [Price], [Odometer], [Range])VALUES(@id, @store, @date, @octane, @distance, @gallons, @price, @odometer, @range)" }; cmd.Parameters.AddWithValue("@id", newTransaction.VehicleID); cmd.Parameters.AddWithValue("@store", newTransaction.Store); cmd.Parameters.AddWithValue("@date", newTransaction.DateToString); cmd.Parameters.AddWithValue("@octane", newTransaction.Octane); cmd.Parameters.AddWithValue("@distance", newTransaction.Distance); cmd.Parameters.AddWithValue("@gallons", newTransaction.Gallons); cmd.Parameters.AddWithValue("@price", newTransaction.Price); cmd.Parameters.AddWithValue("@odometer", newTransaction.Odometer); cmd.Parameters.AddWithValue("@range", newTransaction.Range); return(SQLiteHelper.ExecuteCommand(_con, cmd)); }
/// <summary>Modifies an existing <see cref="FuelTransaction"/>.</summary> /// <param name="oldTransaction">Existing <see cref="FuelTransaction"/></param> /// <param name="newTransaction">New <see cref="FuelTransaction"/></param> /// <returns>Returns true if modification is successful</returns> public Task <bool> ModifyTransaction(FuelTransaction oldTransaction, FuelTransaction newTransaction) { SQLiteCommand cmd = new SQLiteCommand { CommandText = "UPDATE Transactions SET [VehicleID] = @vehicleID, [Store] = @store, [Date] = @date, [Octane] = @octane, [Distance] = @distance, [Gallons] = @gallons, [Price] = @price, [Odometer] = @odometer, [Range] = @range WHERE [TransactionID] = @transactionID" }; cmd.Parameters.AddWithValue("@vehicleID", newTransaction.VehicleID); cmd.Parameters.AddWithValue("@store", newTransaction.Store.Replace("'", "''")); cmd.Parameters.AddWithValue("@date", newTransaction.DateToString); cmd.Parameters.AddWithValue("@octane", newTransaction.Octane); cmd.Parameters.AddWithValue("@distance", newTransaction.Distance); cmd.Parameters.AddWithValue("@gallons", newTransaction.Gallons); cmd.Parameters.AddWithValue("@price", newTransaction.Price); cmd.Parameters.AddWithValue("@odometer", newTransaction.Odometer); cmd.Parameters.AddWithValue("@range", newTransaction.Range); cmd.Parameters.AddWithValue("@transactionID", oldTransaction.TranscationID); return(SQLiteHelper.ExecuteCommand(_con, cmd)); }
/// <summary>Attempts to add a <see cref="FuelTransaction"/> to the database.</summary> /// <returns>Returns true if successfully added</returns> private async Task <bool> AddTransaction() { FuelTransaction newTransaction = new FuelTransaction(await AppState.DatabaseInteraction.GetNextTransactionIndex(), CurrentVehicle.VehicleID, DateTimeHelper.Parse(TransactionDate.SelectedDate), TxtStore.Text, Int32Helper.Parse(TxtOctane.Text), DecimalHelper.Parse(TxtDistance.Text), DecimalHelper.Parse(TxtGallons.Text), DecimalHelper.Parse(TxtPrice.Text), DecimalHelper.Parse(TxtOdometer.Text), Int32Helper.Parse(TxtRange.Text)); // if the odometer or distance weren't both set, determine the distance/odometer so MPG/odometer will be calculated properly if (newTransaction.Distance <= 0M) { if (newTransaction.Odometer > 0M && CurrentVehicle.Transactions.Count > 0) { newTransaction.Distance = newTransaction.Odometer - CurrentVehicle.Transactions[0].Odometer; } else if (newTransaction.Odometer >= 0M && CurrentVehicle.Transactions.Count == 0) { newTransaction.Distance = newTransaction.Odometer; } } else if (newTransaction.Odometer <= 0M) { if (newTransaction.Distance > 0M && CurrentVehicle.Transactions.Count > 0) { newTransaction.Odometer = CurrentVehicle.Transactions[0].Odometer + newTransaction.Distance; } else if (newTransaction.Distance > 0M && CurrentVehicle.Transactions.Count == 0) { newTransaction.Odometer = newTransaction.Distance; } } if (!await AppState.DatabaseInteraction.NewTransaction(newTransaction)) { return(false); } CurrentVehicle.AddTransaction(newTransaction); return(true); }
/// <summary>Adds a new <see cref="FuelTransaction"/> to the database.</summary> /// <param name="newTransaction"><see cref="FuelTransaction"/> to be added</param> /// <returns>Returns true if add successful</returns> public static Task <bool> NewFuelTransaction(FuelTransaction newTransaction) => DatabaseInteraction .NewFuelTransaction(newTransaction);
/// <summary>Modifies an existing <see cref="FuelTransaction"/>.</summary> /// <param name="oldTransaction">Existing <see cref="FuelTransaction"/></param> /// <param name="newTransaction">New <see cref="FuelTransaction"/></param> /// <returns>Returns true if modification successful</returns> public static Task <bool> ModifyFuelTransaction(FuelTransaction oldTransaction, FuelTransaction newTransaction) => DatabaseInteraction.ModifyFuelTransaction(oldTransaction, newTransaction);
/// <summary>Deletes a <see cref="FuelTransaction"/> from the database.</summary> /// <param name="deleteTransaction"><see cref="FuelTransaction"/> to be deleted</param> /// <returns>Returns true if deletion successful</returns> public static Task <bool> DeleteFuelTransaction(FuelTransaction deleteTransaction) => DatabaseInteraction .DeleteFuelTransaction(deleteTransaction);