/// <summary> /// Remove a Product to a Discount /// </summary> /// <returns></returns> public Response RemoveProduct(Objects.DiscountProduct product) { int statusCode = 204; Response response = new Response(); try { Database.Connection.Open(); string Query = "DELETE FROM ProductDiscounts WHERE ProductId=@ProductId "; MySqlCommand Command = new MySqlCommand(Query, Database.Connection); Command.Parameters.AddWithValue("ProductId", product.ProductId); Command.ExecuteNonQuery(); Database.Connection.Close(); // OK : Successfully Deleted -> Returning No Content statusCode = 204; response.StatusCode = statusCode; } catch (MySqlException e) { Logger.QueryError(e, "Discount", "RemoveProduct"); // Internal Error : response.StatusCode = 500; } if (Database.Connection.State == ConnectionState.Open) { Database.Connection.Close(); } return(response); }
/// <summary> /// Get Products of Discount /// </summary> /// <returns></returns> public Response GetDiscountProducts(Objects.Discount discount) { int statusCode = 200; Response response = new Response(); List <object> products = new List <object>(); try { Database.Connection.Open(); string query = " SELECT * FROM ProductDiscounts WHERE DiscountId=@DiscountId ORDER BY CreatedAt DESC "; //Execute Query MySqlCommand Command = new MySqlCommand(query, Database.Connection); Command.Parameters.AddWithValue("DiscountId", discount.Id); MySqlDataReader DataReader = Command.ExecuteReader(); //Read Data while (DataReader.Read()) { Objects.DiscountProduct product = new Objects.DiscountProduct { DiscountId = DataReader["DiscountId"].ToString(), ProductId = DataReader["ProductId"].ToString(), CreatedAt = Convert.ToDateTime(DataReader["CreatedAt"].ToString()), }; products.Add(product); } if (!DataReader.HasRows) { // Nothing statusCode = 204; } else { // OK statusCode = 200; } Database.Connection.Close(); //Response response.StatusCode = statusCode; response.DataArray = products; } catch (MySqlException e) { Logger.QueryError(e, "Discount", "Getting Discount Products"); // Internal Error : response.StatusCode = 500; } //Close Connection if Open if (Database.Connection.State == ConnectionState.Open) { Database.Connection.Close(); } return(response); }
/// <summary> /// Add a Product to a Discount /// </summary> /// <returns></returns> public Response AddProduct(Objects.DiscountProduct product) { int statusCode = 201; Response response = new Response(); try { Database.Connection.Open(); string query = " INSERT INTO ProductDiscounts (DiscountId, ProductId) VALUES (@DiscountId, @ProductId) "; MySqlCommand Command = new MySqlCommand(query, Database.Connection); Command.Parameters.AddWithValue("DiscountId", product.DiscountId); Command.Parameters.AddWithValue("ProductId", product.ProductId); Command.ExecuteNonQuery(); Database.Connection.Close(); // Created statusCode = 201; } catch (MySqlException e) { if (e.Message.Contains("Duplicate entry")) { //Duplicate Key or Conflict statusCode = 409; } else { // Internal Server Error statusCode = 500; } Logger.QueryError(e, "Discount", "AddProduct"); } //Close Connection if Open if (Database.Connection.State == ConnectionState.Open) { Database.Connection.Close(); } //Response response.StatusCode = statusCode; response.Data = product; return(response); }