Delete customer, modify and add almost work
This commit is contained in:
parent
6c6de5e505
commit
a6da14e24f
@ -1,32 +1,43 @@
|
|||||||
|
using C969Project.Data;
|
||||||
using C969Project.Data.Models;
|
using C969Project.Data.Models;
|
||||||
|
|
||||||
namespace C969Project;
|
namespace C969Project;
|
||||||
|
|
||||||
public partial class AddUpdateCustomerForm : Form
|
public partial class AddUpdateCustomerForm : Form
|
||||||
{
|
{
|
||||||
public enum OperationType { Add, Update }
|
public AddUpdateCustomerForm()
|
||||||
public AddUpdateCustomerForm(OperationType operationType, Customer? customer = null)
|
|
||||||
{
|
{
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
|
|
||||||
if (operationType == OperationType.Add) InitAdd();
|
|
||||||
else if (operationType == OperationType.Update && customer is not null) InitUpdate(customer);
|
|
||||||
else Close();
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void InitAdd()
|
public void InitAdd()
|
||||||
{
|
{
|
||||||
Text = "Add Customer";
|
Text = "Add Customer";
|
||||||
label1.Text = "Add Customer";
|
label1.Text = "Add Customer";
|
||||||
|
|
||||||
|
nameTextBox.Text = string.Empty;
|
||||||
|
addressTextBox.Text = string.Empty;
|
||||||
|
cityTextBox.Text = string.Empty;
|
||||||
|
zipTextBox.Text = string.Empty;
|
||||||
|
phoneTextBox.Text = string.Empty;
|
||||||
|
|
||||||
|
ShowDialog();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void InitUpdate(Customer customer)
|
public void InitUpdate(Customer customer)
|
||||||
{
|
{
|
||||||
Text = "Update Customer";
|
Text = "Update Customer";
|
||||||
label1.Text = "Update Customer";
|
label1.Text = "Update Customer";
|
||||||
|
|
||||||
nameTextBox.Text = customer.CustomerName;
|
nameTextBox.Text = customer.CustomerName;
|
||||||
|
var addr = DatabaseHelper.RetrieveAddress(customer.AddressId);
|
||||||
|
addressTextBox.Text = addr.Address1;
|
||||||
|
var city = DatabaseHelper.RetrieveCity(addr.CityId);
|
||||||
|
cityTextBox.Text = city.CityName;
|
||||||
|
zipTextBox.Text = addr.PostalCode;
|
||||||
|
phoneTextBox.Text = addr.Phone;
|
||||||
|
|
||||||
|
ShowDialog();
|
||||||
}
|
}
|
||||||
|
|
||||||
// name, {address, phone}
|
// name, {address, phone}
|
||||||
|
@ -24,8 +24,10 @@ public static class DatabaseHelper
|
|||||||
Console.WriteLine(ex.Message);
|
Console.WriteLine(ex.Message);
|
||||||
}
|
}
|
||||||
|
|
||||||
string query = $"SELECT * FROM client_schedule.user WHERE userName = '{username}'";
|
string query = "SELECT * FROM client_schedule.user WHERE userName = @username";
|
||||||
using MySqlCommand command = new MySqlCommand(query, connection);
|
using MySqlCommand command = new MySqlCommand(query, connection);
|
||||||
|
command.Parameters.AddWithValue("@username", username);
|
||||||
|
|
||||||
using MySqlDataReader reader = command.ExecuteReader();
|
using MySqlDataReader reader = command.ExecuteReader();
|
||||||
|
|
||||||
while (reader.Read())
|
while (reader.Read())
|
||||||
@ -102,7 +104,7 @@ public static class DatabaseHelper
|
|||||||
command.Parameters.AddWithValue("@lastUpdate", DateTime.UtcNow);
|
command.Parameters.AddWithValue("@lastUpdate", DateTime.UtcNow);
|
||||||
command.Parameters.AddWithValue("@lastUpdateBy", AppState.CurrentUser.Username);
|
command.Parameters.AddWithValue("@lastUpdateBy", AppState.CurrentUser.Username);
|
||||||
|
|
||||||
int rowsAffected = command.ExecuteNonQuery();
|
command.ExecuteNonQuery();
|
||||||
}
|
}
|
||||||
catch (MySqlException e)
|
catch (MySqlException e)
|
||||||
{
|
{
|
||||||
@ -116,6 +118,68 @@ public static class DatabaseHelper
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void UpdateCustomer(Customer customer)
|
||||||
|
{
|
||||||
|
using MySqlConnection connection = new MySqlConnection(AppSettings.GetSetting("ConnectionStrings", "DefaultConnection"));
|
||||||
|
try
|
||||||
|
{
|
||||||
|
connection.Open();
|
||||||
|
|
||||||
|
string query =
|
||||||
|
"UPDATE customer SET customerName = @customerName, addressId = @addressId, active = @active, " +
|
||||||
|
"lastUpdate = @lastUpdate, lastUpdateBy = @lastUpdateBy WHERE customerId = @customerId";
|
||||||
|
|
||||||
|
using MySqlCommand command = new MySqlCommand(query, connection);
|
||||||
|
|
||||||
|
command.Parameters.AddWithValue("@customerName", customer.CustomerName);
|
||||||
|
command.Parameters.AddWithValue("@addressId", customer.AddressId);
|
||||||
|
command.Parameters.AddWithValue("@active", customer.Active);
|
||||||
|
command.Parameters.AddWithValue("@lastUpdate", DateTime.UtcNow);
|
||||||
|
command.Parameters.AddWithValue("@lastUpdateBy", AppState.CurrentUser.Username);
|
||||||
|
command.Parameters.AddWithValue("@customerId", customer.CustomerId);
|
||||||
|
|
||||||
|
command.ExecuteNonQuery();
|
||||||
|
}
|
||||||
|
catch (MySqlException e)
|
||||||
|
{
|
||||||
|
Console.WriteLine($"MySQL Error: {e.Message}");
|
||||||
|
throw;
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
Console.WriteLine($"General Error: {ex.Message}");
|
||||||
|
throw;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void DeleteCustomer(int customerId)
|
||||||
|
{
|
||||||
|
using MySqlConnection connection = new MySqlConnection(AppSettings.GetSetting("ConnectionStrings", "DefaultConnection"));
|
||||||
|
try
|
||||||
|
{
|
||||||
|
connection.Open();
|
||||||
|
string query = "DELETE FROM customer WHERE customerId = @customerId";
|
||||||
|
using MySqlCommand command = new MySqlCommand(query, connection);
|
||||||
|
command.Parameters.AddWithValue("@customerId", customerId);
|
||||||
|
command.ExecuteNonQuery();
|
||||||
|
}
|
||||||
|
catch (MySqlException e)
|
||||||
|
{
|
||||||
|
Console.WriteLine($"MySQL Error: {e.Message}");
|
||||||
|
throw;
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
Console.WriteLine($"General Error: {ex.Message}");
|
||||||
|
throw;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void DeleteCustomer(Customer customer)
|
||||||
|
{
|
||||||
|
DeleteCustomer(customer.CustomerId);
|
||||||
|
}
|
||||||
|
|
||||||
public static Address? RetrieveAddress(int addressId)
|
public static Address? RetrieveAddress(int addressId)
|
||||||
{
|
{
|
||||||
using MySqlConnection connection = new MySqlConnection(AppSettings.GetSetting("ConnectionStrings", "DefaultConnection"));
|
using MySqlConnection connection = new MySqlConnection(AppSettings.GetSetting("ConnectionStrings", "DefaultConnection"));
|
||||||
@ -129,8 +193,10 @@ public static class DatabaseHelper
|
|||||||
throw;
|
throw;
|
||||||
}
|
}
|
||||||
|
|
||||||
string query = $"SELECT * FROM client_schedule.address WHERE addressId = {addressId}";
|
string query = "SELECT * FROM client_schedule.address WHERE addressId = @addressId";
|
||||||
using MySqlCommand command = new MySqlCommand(query, connection);
|
using MySqlCommand command = new MySqlCommand(query, connection);
|
||||||
|
command.Parameters.AddWithValue("@addressId", addressId);
|
||||||
|
|
||||||
using MySqlDataReader reader = command.ExecuteReader();
|
using MySqlDataReader reader = command.ExecuteReader();
|
||||||
|
|
||||||
while (reader.Read())
|
while (reader.Read())
|
||||||
@ -138,7 +204,7 @@ public static class DatabaseHelper
|
|||||||
var addr = new Address()
|
var addr = new Address()
|
||||||
{
|
{
|
||||||
Id = reader.GetInt32("addressId"),
|
Id = reader.GetInt32("addressId"),
|
||||||
Address1 = reader.GetString("address1"),
|
Address1 = reader.GetString("address"),
|
||||||
Address2 = reader.GetString("address2"),
|
Address2 = reader.GetString("address2"),
|
||||||
CityId = reader.GetInt32("cityId"),
|
CityId = reader.GetInt32("cityId"),
|
||||||
PostalCode = reader.GetString("postalCode"),
|
PostalCode = reader.GetString("postalCode"),
|
||||||
@ -154,4 +220,684 @@ public static class DatabaseHelper
|
|||||||
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static List<Address> RetrieveAllAddresses()
|
||||||
|
{
|
||||||
|
using MySqlConnection connection = new MySqlConnection(AppSettings.GetSetting("ConnectionStrings", "DefaultConnection"));
|
||||||
|
try
|
||||||
|
{
|
||||||
|
connection.Open();
|
||||||
|
}
|
||||||
|
catch (MySqlException e)
|
||||||
|
{
|
||||||
|
Console.WriteLine(e);
|
||||||
|
throw;
|
||||||
|
}
|
||||||
|
|
||||||
|
List<Address> addresses = new List<Address>();
|
||||||
|
|
||||||
|
using MySqlCommand command = new MySqlCommand("SELECT * FROM client_schedule.address", connection);
|
||||||
|
using MySqlDataReader reader = command.ExecuteReader();
|
||||||
|
while (reader.Read())
|
||||||
|
{
|
||||||
|
var addr = new Address()
|
||||||
|
{
|
||||||
|
Id = reader.GetInt32("addressId"),
|
||||||
|
Address1 = reader.GetString("address"),
|
||||||
|
Address2 = reader.GetString("address2"),
|
||||||
|
CityId = reader.GetInt32("cityId"),
|
||||||
|
PostalCode = reader.GetString("postalCode"),
|
||||||
|
Phone = reader.GetString("phone"),
|
||||||
|
CreateDate = reader.GetDateTime("createDate"),
|
||||||
|
CreatedBy = reader.GetString("createdBy"),
|
||||||
|
LastUpdate = reader.GetDateTime("lastUpdate"),
|
||||||
|
LastUpdateBy = reader.GetString("lastUpdateBy"),
|
||||||
|
};
|
||||||
|
|
||||||
|
addresses.Add(addr);
|
||||||
|
}
|
||||||
|
|
||||||
|
return addresses;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void AddAddress(Address address)
|
||||||
|
{
|
||||||
|
using MySqlConnection connection = new MySqlConnection(AppSettings.GetSetting("ConnectionStrings", "DefaultConnection"));
|
||||||
|
try
|
||||||
|
{
|
||||||
|
connection.Open();
|
||||||
|
|
||||||
|
string query =
|
||||||
|
"INSERT INTO address (addressId, address, address2, cityId, postalCode, phone, createDate, createdBy, lastUpdate, lastUpdateBy) " +
|
||||||
|
"VALUES (@addressId, @address1, @address2, @cityId, @postalCode, @phone, @createDate, @createdBy, @lastUpdate, @lastUpdateBy)";
|
||||||
|
|
||||||
|
using MySqlCommand command = new MySqlCommand(query, connection);
|
||||||
|
|
||||||
|
command.Parameters.AddWithValue("@addressId", address.Id);
|
||||||
|
command.Parameters.AddWithValue("@address1", address.Address1);
|
||||||
|
command.Parameters.AddWithValue("@address2", address.Address2);
|
||||||
|
command.Parameters.AddWithValue("@cityId", address.CityId);
|
||||||
|
command.Parameters.AddWithValue("@postalCode", address.PostalCode);
|
||||||
|
command.Parameters.AddWithValue("@phone", address.Phone);
|
||||||
|
command.Parameters.AddWithValue("@createDate", DateTime.UtcNow);
|
||||||
|
command.Parameters.AddWithValue("@createdBy", AppState.CurrentUser.Username);
|
||||||
|
command.Parameters.AddWithValue("@lastUpdate", DateTime.UtcNow);
|
||||||
|
command.Parameters.AddWithValue("@lastUpdateBy", AppState.CurrentUser.Username);
|
||||||
|
|
||||||
|
command.ExecuteNonQuery();
|
||||||
|
}
|
||||||
|
catch (MySqlException e)
|
||||||
|
{
|
||||||
|
Console.WriteLine($"MySQL Error: {e.Message}");
|
||||||
|
throw;
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
Console.WriteLine($"General Error: {ex.Message}");
|
||||||
|
throw;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void UpdateAddress(Address address)
|
||||||
|
{
|
||||||
|
using MySqlConnection connection = new MySqlConnection(AppSettings.GetSetting("ConnectionStrings", "DefaultConnection"));
|
||||||
|
try
|
||||||
|
{
|
||||||
|
connection.Open();
|
||||||
|
|
||||||
|
string query =
|
||||||
|
"UPDATE address SET address = @address1, address2 = @address2, cityId = @cityId, postalCode = @postalCode, " +
|
||||||
|
"phone = @phone, lastUpdate = @lastUpdate, lastUpdateBy = @lastUpdateBy WHERE addressId = @addressId";
|
||||||
|
|
||||||
|
using MySqlCommand command = new MySqlCommand(query, connection);
|
||||||
|
|
||||||
|
command.Parameters.AddWithValue("@address1", address.Address1);
|
||||||
|
command.Parameters.AddWithValue("@address2", address.Address2);
|
||||||
|
command.Parameters.AddWithValue("@cityId", address.CityId);
|
||||||
|
command.Parameters.AddWithValue("@postalCode", address.PostalCode);
|
||||||
|
command.Parameters.AddWithValue("@phone", address.Phone);
|
||||||
|
command.Parameters.AddWithValue("@lastUpdate", DateTime.UtcNow);
|
||||||
|
command.Parameters.AddWithValue("@lastUpdateBy", AppState.CurrentUser.Username);
|
||||||
|
command.Parameters.AddWithValue("@addressId", address.Id);
|
||||||
|
|
||||||
|
command.ExecuteNonQuery();
|
||||||
|
}
|
||||||
|
catch (MySqlException e)
|
||||||
|
{
|
||||||
|
Console.WriteLine($"MySQL Error: {e.Message}");
|
||||||
|
throw;
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
Console.WriteLine($"General Error: {ex.Message}");
|
||||||
|
throw;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void DeleteAddress(int addressId)
|
||||||
|
{
|
||||||
|
using MySqlConnection connection = new MySqlConnection(AppSettings.GetSetting("ConnectionStrings", "DefaultConnection"));
|
||||||
|
try
|
||||||
|
{
|
||||||
|
connection.Open();
|
||||||
|
string query = "DELETE FROM address WHERE addressId = @addressId";
|
||||||
|
using MySqlCommand command = new MySqlCommand(query, connection);
|
||||||
|
command.Parameters.AddWithValue("@addressId", addressId);
|
||||||
|
command.ExecuteNonQuery();
|
||||||
|
}
|
||||||
|
catch (MySqlException e)
|
||||||
|
{
|
||||||
|
Console.WriteLine($"MySQL Error: {e.Message}");
|
||||||
|
throw;
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
Console.WriteLine($"General Error: {ex.Message}");
|
||||||
|
throw;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void DeleteAddress(Address address)
|
||||||
|
{
|
||||||
|
DeleteAddress(address.Id);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Appointment? RetrieveAppointment(int appointmentId)
|
||||||
|
{
|
||||||
|
using MySqlConnection connection = new MySqlConnection(AppSettings.GetSetting("ConnectionStrings", "DefaultConnection"));
|
||||||
|
try
|
||||||
|
{
|
||||||
|
connection.Open();
|
||||||
|
}
|
||||||
|
catch (MySqlException e)
|
||||||
|
{
|
||||||
|
Console.WriteLine(e);
|
||||||
|
throw;
|
||||||
|
}
|
||||||
|
|
||||||
|
string query = "SELECT * FROM client_schedule.appointment WHERE appointmentId = @appointmentId";
|
||||||
|
using MySqlCommand command = new MySqlCommand(query, connection);
|
||||||
|
command.Parameters.AddWithValue("@appointmentId", appointmentId);
|
||||||
|
|
||||||
|
using MySqlDataReader reader = command.ExecuteReader();
|
||||||
|
|
||||||
|
while (reader.Read())
|
||||||
|
{
|
||||||
|
var appt = new Appointment()
|
||||||
|
{
|
||||||
|
AppointmentId = reader.GetInt32("appointmentId"),
|
||||||
|
CustomerId = reader.GetInt32("customerId"),
|
||||||
|
UserId = reader.GetInt32("userId"),
|
||||||
|
Title = reader.GetString("title"),
|
||||||
|
Description = reader.GetString("description"),
|
||||||
|
Location = reader.GetString("location"),
|
||||||
|
Contact = reader.GetString("contact"),
|
||||||
|
AppointmentType = reader.GetString("type"),
|
||||||
|
Url = reader.GetString("url"),
|
||||||
|
Start = reader.GetDateTime("start"),
|
||||||
|
End = reader.GetDateTime("end"),
|
||||||
|
CreateDate = reader.GetDateTime("createDate"),
|
||||||
|
CreatedBy = reader.GetString("createdBy"),
|
||||||
|
LastUpdate = reader.GetDateTime("lastUpdate"),
|
||||||
|
LastUpdateBy = reader.GetString("lastUpdateBy"),
|
||||||
|
};
|
||||||
|
|
||||||
|
return appt;
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static List<Appointment> RetrieveAllAppointments()
|
||||||
|
{
|
||||||
|
using MySqlConnection connection = new MySqlConnection(AppSettings.GetSetting("ConnectionStrings", "DefaultConnection"));
|
||||||
|
try
|
||||||
|
{
|
||||||
|
connection.Open();
|
||||||
|
}
|
||||||
|
catch (MySqlException e)
|
||||||
|
{
|
||||||
|
Console.WriteLine(e);
|
||||||
|
throw;
|
||||||
|
}
|
||||||
|
|
||||||
|
List<Appointment> appointments = new List<Appointment>();
|
||||||
|
|
||||||
|
using MySqlCommand command = new MySqlCommand("SELECT * FROM client_schedule.appointment", connection);
|
||||||
|
using MySqlDataReader reader = command.ExecuteReader();
|
||||||
|
while (reader.Read())
|
||||||
|
{
|
||||||
|
var appt = new Appointment()
|
||||||
|
{
|
||||||
|
AppointmentId = reader.GetInt32("appointmentId"),
|
||||||
|
CustomerId = reader.GetInt32("customerId"),
|
||||||
|
UserId = reader.GetInt32("userId"),
|
||||||
|
Title = reader.GetString("title"),
|
||||||
|
Description = reader.GetString("description"),
|
||||||
|
Location = reader.GetString("location"),
|
||||||
|
Contact = reader.GetString("contact"),
|
||||||
|
AppointmentType = reader.GetString("type"),
|
||||||
|
Url = reader.GetString("url"),
|
||||||
|
Start = reader.GetDateTime("start"),
|
||||||
|
End = reader.GetDateTime("end"),
|
||||||
|
CreateDate = reader.GetDateTime("createDate"),
|
||||||
|
CreatedBy = reader.GetString("createdBy"),
|
||||||
|
LastUpdate = reader.GetDateTime("lastUpdate"),
|
||||||
|
LastUpdateBy = reader.GetString("lastUpdateBy"),
|
||||||
|
};
|
||||||
|
|
||||||
|
appointments.Add(appt);
|
||||||
|
}
|
||||||
|
|
||||||
|
return appointments;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void AddAppointment(Appointment appointment)
|
||||||
|
{
|
||||||
|
using MySqlConnection connection = new MySqlConnection(AppSettings.GetSetting("ConnectionStrings", "DefaultConnection"));
|
||||||
|
try
|
||||||
|
{
|
||||||
|
connection.Open();
|
||||||
|
|
||||||
|
string query =
|
||||||
|
"INSERT INTO appointment (appointmentId, customerId, userId, title, description, location, contact, type, url, start, end, createDate, createdBy, lastUpdate, lastUpdateBy) " +
|
||||||
|
"VALUES (@appointmentId, @customerId, @userId, @title, @description, @location, @contact, @type, @url, @start, @end, @createDate, @createdBy, @lastUpdate, @lastUpdateBy)";
|
||||||
|
|
||||||
|
using MySqlCommand command = new MySqlCommand(query, connection);
|
||||||
|
|
||||||
|
command.Parameters.AddWithValue("@appointmentId", appointment.AppointmentId);
|
||||||
|
command.Parameters.AddWithValue("@customerId", appointment.CustomerId);
|
||||||
|
command.Parameters.AddWithValue("@userId", appointment.UserId);
|
||||||
|
command.Parameters.AddWithValue("@title", appointment.Title);
|
||||||
|
command.Parameters.AddWithValue("@description", appointment.Description);
|
||||||
|
command.Parameters.AddWithValue("@location", appointment.Location);
|
||||||
|
command.Parameters.AddWithValue("@contact", appointment.Contact);
|
||||||
|
command.Parameters.AddWithValue("@type", appointment.AppointmentType);
|
||||||
|
command.Parameters.AddWithValue("@url", appointment.Url);
|
||||||
|
command.Parameters.AddWithValue("@start", appointment.Start);
|
||||||
|
command.Parameters.AddWithValue("@end", appointment.End);
|
||||||
|
command.Parameters.AddWithValue("@createDate", DateTime.UtcNow);
|
||||||
|
command.Parameters.AddWithValue("@createdBy", AppState.CurrentUser.Username);
|
||||||
|
command.Parameters.AddWithValue("@lastUpdate", DateTime.UtcNow);
|
||||||
|
command.Parameters.AddWithValue("@lastUpdateBy", AppState.CurrentUser.Username);
|
||||||
|
|
||||||
|
command.ExecuteNonQuery();
|
||||||
|
}
|
||||||
|
catch (MySqlException e)
|
||||||
|
{
|
||||||
|
Console.WriteLine($"MySQL Error: {e.Message}");
|
||||||
|
throw;
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
Console.WriteLine($"General Error: {ex.Message}");
|
||||||
|
throw;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void UpdateAppointment(Appointment appointment)
|
||||||
|
{
|
||||||
|
using MySqlConnection connection = new MySqlConnection(AppSettings.GetSetting("ConnectionStrings", "DefaultConnection"));
|
||||||
|
try
|
||||||
|
{
|
||||||
|
connection.Open();
|
||||||
|
|
||||||
|
string query =
|
||||||
|
"UPDATE appointment SET customerId = @customerId, userId = @userId, title = @title, description = @description, " +
|
||||||
|
"location = @location, contact = @contact, type = @type, url = @url, start = @start, end = @end, " +
|
||||||
|
"lastUpdate = @lastUpdate, lastUpdateBy = @lastUpdateBy WHERE appointmentId = @appointmentId";
|
||||||
|
|
||||||
|
using MySqlCommand command = new MySqlCommand(query, connection);
|
||||||
|
|
||||||
|
command.Parameters.AddWithValue("@customerId", appointment.CustomerId);
|
||||||
|
command.Parameters.AddWithValue("@userId", appointment.UserId);
|
||||||
|
command.Parameters.AddWithValue("@title", appointment.Title);
|
||||||
|
command.Parameters.AddWithValue("@description", appointment.Description);
|
||||||
|
command.Parameters.AddWithValue("@location", appointment.Location);
|
||||||
|
command.Parameters.AddWithValue("@contact", appointment.Contact);
|
||||||
|
command.Parameters.AddWithValue("@type", appointment.AppointmentType);
|
||||||
|
command.Parameters.AddWithValue("@url", appointment.Url);
|
||||||
|
command.Parameters.AddWithValue("@start", appointment.Start);
|
||||||
|
command.Parameters.AddWithValue("@end", appointment.End);
|
||||||
|
command.Parameters.AddWithValue("@lastUpdate", DateTime.UtcNow);
|
||||||
|
command.Parameters.AddWithValue("@lastUpdateBy", AppState.CurrentUser.Username);
|
||||||
|
command.Parameters.AddWithValue("@appointmentId", appointment.AppointmentId);
|
||||||
|
|
||||||
|
command.ExecuteNonQuery();
|
||||||
|
}
|
||||||
|
catch (MySqlException e)
|
||||||
|
{
|
||||||
|
Console.WriteLine($"MySQL Error: {e.Message}");
|
||||||
|
throw;
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
Console.WriteLine($"General Error: {ex.Message}");
|
||||||
|
throw;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void DeleteAppointment(int appointmentId)
|
||||||
|
{
|
||||||
|
using MySqlConnection connection = new MySqlConnection(AppSettings.GetSetting("ConnectionStrings", "DefaultConnection"));
|
||||||
|
try
|
||||||
|
{
|
||||||
|
connection.Open();
|
||||||
|
string query = "DELETE FROM appointment WHERE appointmentId = @appointmentId";
|
||||||
|
using MySqlCommand command = new MySqlCommand(query, connection);
|
||||||
|
command.Parameters.AddWithValue("@appointmentId", appointmentId);
|
||||||
|
command.ExecuteNonQuery();
|
||||||
|
}
|
||||||
|
catch (MySqlException e)
|
||||||
|
{
|
||||||
|
Console.WriteLine($"MySQL Error: {e.Message}");
|
||||||
|
throw;
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
Console.WriteLine($"General Error: {ex.Message}");
|
||||||
|
throw;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void DeleteAppointment(Appointment appointment)
|
||||||
|
{
|
||||||
|
DeleteAppointment(appointment.AppointmentId);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static City? RetrieveCity(int cityId)
|
||||||
|
{
|
||||||
|
using MySqlConnection connection = new MySqlConnection(AppSettings.GetSetting("ConnectionStrings", "DefaultConnection"));
|
||||||
|
try
|
||||||
|
{
|
||||||
|
connection.Open();
|
||||||
|
}
|
||||||
|
catch (MySqlException e)
|
||||||
|
{
|
||||||
|
Console.WriteLine(e);
|
||||||
|
throw;
|
||||||
|
}
|
||||||
|
|
||||||
|
string query = "SELECT * FROM client_schedule.city WHERE cityId = @cityId";
|
||||||
|
using MySqlCommand command = new MySqlCommand(query, connection);
|
||||||
|
command.Parameters.AddWithValue("@cityId", cityId);
|
||||||
|
|
||||||
|
using MySqlDataReader reader = command.ExecuteReader();
|
||||||
|
|
||||||
|
while (reader.Read())
|
||||||
|
{
|
||||||
|
var city = new City()
|
||||||
|
{
|
||||||
|
CityID = reader.GetInt32("cityId"),
|
||||||
|
CityName = reader.GetString("city"),
|
||||||
|
CountryID = reader.GetInt32("countryId"),
|
||||||
|
CreateDate = reader.GetDateTime("createDate"),
|
||||||
|
CreatedBy = reader.GetString("createdBy"),
|
||||||
|
LastUpdate = reader.GetDateTime("lastUpdate"),
|
||||||
|
LastUpdateBy = reader.GetString("lastUpdateBy"),
|
||||||
|
};
|
||||||
|
|
||||||
|
return city;
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static List<City> RetrieveAllCities()
|
||||||
|
{
|
||||||
|
using MySqlConnection connection = new MySqlConnection(AppSettings.GetSetting("ConnectionStrings", "DefaultConnection"));
|
||||||
|
try
|
||||||
|
{
|
||||||
|
connection.Open();
|
||||||
|
}
|
||||||
|
catch (MySqlException e)
|
||||||
|
{
|
||||||
|
Console.WriteLine(e);
|
||||||
|
throw;
|
||||||
|
}
|
||||||
|
|
||||||
|
List<City> cities = new List<City>();
|
||||||
|
|
||||||
|
using MySqlCommand command = new MySqlCommand("SELECT * FROM client_schedule.city", connection);
|
||||||
|
using MySqlDataReader reader = command.ExecuteReader();
|
||||||
|
while (reader.Read())
|
||||||
|
{
|
||||||
|
var city = new City()
|
||||||
|
{
|
||||||
|
CityID = reader.GetInt32("cityId"),
|
||||||
|
CityName = reader.GetString("city"),
|
||||||
|
CountryID = reader.GetInt32("countryId"),
|
||||||
|
CreateDate = reader.GetDateTime("createDate"),
|
||||||
|
CreatedBy = reader.GetString("createdBy"),
|
||||||
|
LastUpdate = reader.GetDateTime("lastUpdate"),
|
||||||
|
LastUpdateBy = reader.GetString("lastUpdateBy"),
|
||||||
|
};
|
||||||
|
|
||||||
|
cities.Add(city);
|
||||||
|
}
|
||||||
|
|
||||||
|
return cities;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void AddCity(City city)
|
||||||
|
{
|
||||||
|
using MySqlConnection connection = new MySqlConnection(AppSettings.GetSetting("ConnectionStrings", "DefaultConnection"));
|
||||||
|
try
|
||||||
|
{
|
||||||
|
connection.Open();
|
||||||
|
|
||||||
|
string query =
|
||||||
|
"INSERT INTO city (cityId, city, countryId, createDate, createdBy, lastUpdate, lastUpdateBy) " +
|
||||||
|
"VALUES (@cityId, @cityName, @countryId, @createDate, @createdBy, @lastUpdate, @lastUpdateBy)";
|
||||||
|
|
||||||
|
using MySqlCommand command = new MySqlCommand(query, connection);
|
||||||
|
|
||||||
|
command.Parameters.AddWithValue("@cityId", city.CityID);
|
||||||
|
command.Parameters.AddWithValue("@cityName", city.CityName);
|
||||||
|
command.Parameters.AddWithValue("@countryId", city.CountryID);
|
||||||
|
command.Parameters.AddWithValue("@createDate", DateTime.UtcNow);
|
||||||
|
command.Parameters.AddWithValue("@createdBy", AppState.CurrentUser.Username);
|
||||||
|
command.Parameters.AddWithValue("@lastUpdate", DateTime.UtcNow);
|
||||||
|
command.Parameters.AddWithValue("@lastUpdateBy", AppState.CurrentUser.Username);
|
||||||
|
|
||||||
|
command.ExecuteNonQuery();
|
||||||
|
}
|
||||||
|
catch (MySqlException e)
|
||||||
|
{
|
||||||
|
Console.WriteLine($"MySQL Error: {e.Message}");
|
||||||
|
throw;
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
Console.WriteLine($"General Error: {ex.Message}");
|
||||||
|
throw;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void UpdateCity(City city)
|
||||||
|
{
|
||||||
|
using MySqlConnection connection = new MySqlConnection(AppSettings.GetSetting("ConnectionStrings", "DefaultConnection"));
|
||||||
|
try
|
||||||
|
{
|
||||||
|
connection.Open();
|
||||||
|
|
||||||
|
string query =
|
||||||
|
"UPDATE city SET city = @cityName, countryId = @countryId, " +
|
||||||
|
"lastUpdate = @lastUpdate, lastUpdateBy = @lastUpdateBy WHERE cityId = @cityId";
|
||||||
|
|
||||||
|
using MySqlCommand command = new MySqlCommand(query, connection);
|
||||||
|
|
||||||
|
command.Parameters.AddWithValue("@cityName", city.CityName);
|
||||||
|
command.Parameters.AddWithValue("@countryId", city.CountryID);
|
||||||
|
command.Parameters.AddWithValue("@lastUpdate", DateTime.UtcNow);
|
||||||
|
command.Parameters.AddWithValue("@lastUpdateBy", AppState.CurrentUser.Username);
|
||||||
|
command.Parameters.AddWithValue("@cityId", city.CityID);
|
||||||
|
|
||||||
|
command.ExecuteNonQuery();
|
||||||
|
}
|
||||||
|
catch (MySqlException e)
|
||||||
|
{
|
||||||
|
Console.WriteLine($"MySQL Error: {e.Message}");
|
||||||
|
throw;
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
Console.WriteLine($"General Error: {ex.Message}");
|
||||||
|
throw;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void DeleteCity(int cityId)
|
||||||
|
{
|
||||||
|
using MySqlConnection connection = new MySqlConnection(AppSettings.GetSetting("ConnectionStrings", "DefaultConnection"));
|
||||||
|
try
|
||||||
|
{
|
||||||
|
connection.Open();
|
||||||
|
string query = "DELETE FROM city WHERE cityId = @cityId";
|
||||||
|
using MySqlCommand command = new MySqlCommand(query, connection);
|
||||||
|
command.Parameters.AddWithValue("@cityId", cityId);
|
||||||
|
command.ExecuteNonQuery();
|
||||||
|
}
|
||||||
|
catch (MySqlException e)
|
||||||
|
{
|
||||||
|
Console.WriteLine($"MySQL Error: {e.Message}");
|
||||||
|
throw;
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
Console.WriteLine($"General Error: {ex.Message}");
|
||||||
|
throw;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void DeleteCity(City city)
|
||||||
|
{
|
||||||
|
DeleteCity(city.CityID);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Country? RetrieveCountry(int countryId)
|
||||||
|
{
|
||||||
|
using MySqlConnection connection = new MySqlConnection(AppSettings.GetSetting("ConnectionStrings", "DefaultConnection"));
|
||||||
|
try
|
||||||
|
{
|
||||||
|
connection.Open();
|
||||||
|
}
|
||||||
|
catch (MySqlException e)
|
||||||
|
{
|
||||||
|
Console.WriteLine(e);
|
||||||
|
throw;
|
||||||
|
}
|
||||||
|
|
||||||
|
string query = "SELECT * FROM client_schedule.country WHERE countryId = @countryId";
|
||||||
|
using MySqlCommand command = new MySqlCommand(query, connection);
|
||||||
|
command.Parameters.AddWithValue("@countryId", countryId);
|
||||||
|
|
||||||
|
using MySqlDataReader reader = command.ExecuteReader();
|
||||||
|
|
||||||
|
while (reader.Read())
|
||||||
|
{
|
||||||
|
var country = new Country()
|
||||||
|
{
|
||||||
|
CountryID = reader.GetInt32("countryId"),
|
||||||
|
CountryName = reader.GetString("country"),
|
||||||
|
CreateDate = reader.GetDateTime("createDate"),
|
||||||
|
CreatedBy = reader.GetString("createdBy"),
|
||||||
|
LastUpdate = reader.GetDateTime("lastUpdate"),
|
||||||
|
LastUpdateBy = reader.GetString("lastUpdateBy"),
|
||||||
|
};
|
||||||
|
|
||||||
|
return country;
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static List<Country> RetrieveAllCountries()
|
||||||
|
{
|
||||||
|
using MySqlConnection connection = new MySqlConnection(AppSettings.GetSetting("ConnectionStrings", "DefaultConnection"));
|
||||||
|
try
|
||||||
|
{
|
||||||
|
connection.Open();
|
||||||
|
}
|
||||||
|
catch (MySqlException e)
|
||||||
|
{
|
||||||
|
Console.WriteLine(e);
|
||||||
|
throw;
|
||||||
|
}
|
||||||
|
|
||||||
|
List<Country> countries = new List<Country>();
|
||||||
|
|
||||||
|
using MySqlCommand command = new MySqlCommand("SELECT * FROM client_schedule.country", connection);
|
||||||
|
using MySqlDataReader reader = command.ExecuteReader();
|
||||||
|
while (reader.Read())
|
||||||
|
{
|
||||||
|
var country = new Country()
|
||||||
|
{
|
||||||
|
CountryID = reader.GetInt32("countryId"),
|
||||||
|
CountryName = reader.GetString("country"),
|
||||||
|
CreateDate = reader.GetDateTime("createDate"),
|
||||||
|
CreatedBy = reader.GetString("createdBy"),
|
||||||
|
LastUpdate = reader.GetDateTime("lastUpdate"),
|
||||||
|
LastUpdateBy = reader.GetString("lastUpdateBy"),
|
||||||
|
};
|
||||||
|
|
||||||
|
countries.Add(country);
|
||||||
|
}
|
||||||
|
|
||||||
|
return countries;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void AddCountry(Country country)
|
||||||
|
{
|
||||||
|
using MySqlConnection connection = new MySqlConnection(AppSettings.GetSetting("ConnectionStrings", "DefaultConnection"));
|
||||||
|
try
|
||||||
|
{
|
||||||
|
connection.Open();
|
||||||
|
|
||||||
|
string query =
|
||||||
|
"INSERT INTO country (countryId, country, createDate, createdBy, lastUpdate, lastUpdateBy) " +
|
||||||
|
"VALUES (@countryId, @countryName, @createDate, @createdBy, @lastUpdate, @lastUpdateBy)";
|
||||||
|
|
||||||
|
using MySqlCommand command = new MySqlCommand(query, connection);
|
||||||
|
|
||||||
|
command.Parameters.AddWithValue("@countryId", country.CountryID);
|
||||||
|
command.Parameters.AddWithValue("@countryName", country.CountryName);
|
||||||
|
command.Parameters.AddWithValue("@createDate", DateTime.UtcNow);
|
||||||
|
command.Parameters.AddWithValue("@createdBy", AppState.CurrentUser.Username);
|
||||||
|
command.Parameters.AddWithValue("@lastUpdate", DateTime.UtcNow);
|
||||||
|
command.Parameters.AddWithValue("@lastUpdateBy", AppState.CurrentUser.Username);
|
||||||
|
|
||||||
|
command.ExecuteNonQuery();
|
||||||
|
}
|
||||||
|
catch (MySqlException e)
|
||||||
|
{
|
||||||
|
Console.WriteLine($"MySQL Error: {e.Message}");
|
||||||
|
throw;
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
Console.WriteLine($"General Error: {ex.Message}");
|
||||||
|
throw;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void UpdateCountry(Country country)
|
||||||
|
{
|
||||||
|
using MySqlConnection connection = new MySqlConnection(AppSettings.GetSetting("ConnectionStrings", "DefaultConnection"));
|
||||||
|
try
|
||||||
|
{
|
||||||
|
connection.Open();
|
||||||
|
|
||||||
|
string query =
|
||||||
|
"UPDATE country SET country = @countryName, " +
|
||||||
|
"lastUpdate = @lastUpdate, lastUpdateBy = @lastUpdateBy WHERE countryId = @countryId";
|
||||||
|
|
||||||
|
using MySqlCommand command = new MySqlCommand(query, connection);
|
||||||
|
|
||||||
|
command.Parameters.AddWithValue("@countryName", country.CountryName);
|
||||||
|
command.Parameters.AddWithValue("@lastUpdate", DateTime.UtcNow);
|
||||||
|
command.Parameters.AddWithValue("@lastUpdateBy", AppState.CurrentUser.Username);
|
||||||
|
command.Parameters.AddWithValue("@countryId", country.CountryID);
|
||||||
|
|
||||||
|
command.ExecuteNonQuery();
|
||||||
|
}
|
||||||
|
catch (MySqlException e)
|
||||||
|
{
|
||||||
|
Console.WriteLine($"MySQL Error: {e.Message}");
|
||||||
|
throw;
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
Console.WriteLine($"General Error: {ex.Message}");
|
||||||
|
throw;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void DeleteCountry(int countryId)
|
||||||
|
{
|
||||||
|
using MySqlConnection connection = new MySqlConnection(AppSettings.GetSetting("ConnectionStrings", "DefaultConnection"));
|
||||||
|
try
|
||||||
|
{
|
||||||
|
connection.Open();
|
||||||
|
string query = "DELETE FROM country WHERE countryId = @countryId";
|
||||||
|
using MySqlCommand command = new MySqlCommand(query, connection);
|
||||||
|
command.Parameters.AddWithValue("@countryId", countryId);
|
||||||
|
command.ExecuteNonQuery();
|
||||||
|
}
|
||||||
|
catch (MySqlException e)
|
||||||
|
{
|
||||||
|
Console.WriteLine($"MySQL Error: {e.Message}");
|
||||||
|
throw;
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
Console.WriteLine($"General Error: {ex.Message}");
|
||||||
|
throw;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void DeleteCountry(Country country)
|
||||||
|
{
|
||||||
|
DeleteCountry(country.CountryID);
|
||||||
|
}
|
||||||
}
|
}
|
@ -35,7 +35,7 @@ namespace C969Project
|
|||||||
AppState.CurrentUser = usr;
|
AppState.CurrentUser = usr;
|
||||||
|
|
||||||
var dash = new DashboardForm();
|
var dash = new DashboardForm();
|
||||||
dash.FormClosing += (o, args) => { this.Show(); };
|
dash.FormClosing += (o, args) => { Close(); };
|
||||||
dash.Show();
|
dash.Show();
|
||||||
Hide();
|
Hide();
|
||||||
}
|
}
|
||||||
|
@ -6,16 +6,39 @@ namespace C969Project;
|
|||||||
public partial class RecordsForm : Form
|
public partial class RecordsForm : Form
|
||||||
{
|
{
|
||||||
private List<Customer>? _customers;
|
private List<Customer>? _customers;
|
||||||
|
private AddUpdateCustomerForm _form = new();
|
||||||
|
|
||||||
public RecordsForm()
|
public RecordsForm()
|
||||||
{
|
{
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
UpdateCustomersList();
|
UpdateCustomersList();
|
||||||
|
|
||||||
AddButton.Click += (sender, args) => { ShowDialog(new AddUpdateCustomerForm(AddUpdateCustomerForm.OperationType.Add)); };
|
AddButton.Click += (sender, args) =>
|
||||||
ModifyButton.Click += (sender, args) => { ShowDialog(new AddUpdateCustomerForm(AddUpdateCustomerForm.OperationType.Update)); };
|
{
|
||||||
|
_form.InitAdd();
|
||||||
|
};
|
||||||
|
|
||||||
|
ModifyButton.Click += (sender, args) =>
|
||||||
|
{
|
||||||
|
var selectedCustomer = _customers[CustomersDataGrid.CurrentCell.RowIndex];
|
||||||
|
_form.InitUpdate(selectedCustomer);
|
||||||
|
};
|
||||||
|
|
||||||
|
DeleteButton.Click += (sender, args) =>
|
||||||
|
{
|
||||||
|
var selectedCustomer = _customers[CustomersDataGrid.CurrentCell.RowIndex];
|
||||||
|
var result = MessageBox.Show("Are you sure you want to delete this record?", "Delete Record", MessageBoxButtons.OKCancel, MessageBoxIcon.Question);
|
||||||
|
if (result == DialogResult.OK)
|
||||||
|
{
|
||||||
|
_customers.Remove(selectedCustomer);
|
||||||
|
DatabaseHelper.DeleteCustomer(selectedCustomer);
|
||||||
|
UpdateCustomersList();
|
||||||
|
}
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public void UpdateCustomersList()
|
public void UpdateCustomersList()
|
||||||
{
|
{
|
||||||
if (_customers != null && _customers.Count > 0) _customers.Clear();
|
if (_customers != null && _customers.Count > 0) _customers.Clear();
|
||||||
|
Loading…
Reference in New Issue
Block a user