/// <summary> /// Update Tax /// </summary> /// <returns></returns> public Response Update(Objects.Tax tax) { int statusCode = 204; Response response = new Response(); var storeId = Properties.Settings.Default.StoreId; try { //Open MySqlConnection Database.Connection.Open(); var query = " UPDATE Taxes SET Name=@Name, Rate=@Rate, ShortName=@ShortName, StoreShortName=@StoreShortName, Description=@Description" + " WHERE TaxId=@TaxId AND StoreId=@StoreId"; //Execute Query With MySqlConnection MySqlCommand Command = new MySqlCommand(query, Database.Connection); Command.Parameters.AddWithValue("TaxId", tax.Id); Command.Parameters.AddWithValue("StoreId", storeId); Command.Parameters.AddWithValue("Name", tax.Name); Command.Parameters.AddWithValue("Rate", tax.Rate); Command.Parameters.AddWithValue("ShortName", tax.ShortName); Command.Parameters.AddWithValue("StoreShortName", tax.StoreShortName); Command.Parameters.AddWithValue("Description", tax.Description); Command.ExecuteNonQuery(); //Close Connection Database.Connection.Close(); response.StatusCode = 204; } catch (MySqlException e) { if (e.Message.Contains("Duplicate entry")) { //Duplicate Key or Conflict statusCode = 409; } else { // Internal Server Error statusCode = 500; } Logger.QueryError(e, "Tax", "Update"); // Status Code response.StatusCode = statusCode; } //Close Connection if Open if (Database.Connection.State == ConnectionState.Open) { Database.Connection.Close(); } return(response); }
/// <summary> /// Get Tax /// </summary> /// <returns></returns> public static Objects.Tax GetTax(string taxId = null, string taxCode = null) { Objects.Tax tax = new Objects.Tax(); try { if (Database.Connection.State != ConnectionState.Open) { Database.Connection.Open(); } var query = "SELECT * FROM Taxes WHERE (TaxId=@TaxId OR StoreShortName=@TaxCode)"; MySqlCommand Command = new MySqlCommand(query, Database.Connection); Command.Parameters.AddWithValue("TaxId", taxId); Command.Parameters.AddWithValue("TaxCode", taxCode); MySqlDataReader DataReader = Command.ExecuteReader(); while (DataReader.Read()) { tax = new Objects.Tax { Id = DataReader["TaxId"].ToString(), Name = DataReader["Name"].ToString(), Rate = decimal.Parse(DataReader["Rate"].ToString()), ShortName = DataReader["ShortName"].ToString(), StoreShortName = DataReader["StoreShortName"].ToString(), Description = DataReader["Description"].ToString(), UpdatedAt = Convert.ToDateTime(DataReader["UpdatedAt"].ToString()), CreatedAt = Convert.ToDateTime(DataReader["CreatedAt"].ToString()) }; } Database.Connection.Close(); } catch (MySqlException e) { Logger.QueryError(e, "Taxes", "GetTax"); } if (Database.Connection.State == ConnectionState.Open) { Database.Connection.Close(); } return(tax); }
/// <summary> /// Get All Store taxes /// </summary> /// <param name="store"></param> /// <returns></returns> public Response GetTaxes(Objects.Store store) { //Props int statusCode = 200; store.Id = store.Id ?? Properties.Settings.Default.StoreId; Response response = new Response(); List <object> taxes = new List <object>(); try { Database.Connection.Open(); //Query string query = "SELECT * FROM Taxes WHERE StoreId=@StoreId"; //Execute Query MySqlCommand Command = new MySqlCommand(query, Database.Connection); Command.Parameters.AddWithValue("StoreId", store.Id); MySqlDataReader DataReader = Command.ExecuteReader(); //Read Data while (DataReader.Read()) { Objects.Tax tax = new Objects.Tax { Id = DataReader["TaxId"].ToString(), Name = DataReader["Name"].ToString(), Rate = decimal.Parse(DataReader["Rate"].ToString()), ShortName = DataReader["ShortName"].ToString(), StoreShortName = DataReader["StoreShortName"].ToString(), Description = DataReader["Description"].ToString(), UpdatedAt = Convert.ToDateTime(DataReader["UpdatedAt"].ToString()), CreatedAt = Convert.ToDateTime(DataReader["CreatedAt"].ToString()) }; taxes.Add(tax); } if (!DataReader.HasRows) { // Bad Request statusCode = 400; } else { // OK statusCode = 200; } //Close Connection Database.Connection.Close(); response.StatusCode = statusCode; response.DataArray = taxes; } catch (MySqlException e) { Logger.QueryError(e, "Taxes", "Getting Taxes"); response.StatusCode = 500; } //Close Connection if Open if (Database.Connection.State == ConnectionState.Open) { Database.Connection.Close(); } return(response); }