The attached project is a poorly written products API in C#.
Please evaluate and refactor areas where you think can be improved.
Consider all aspects of good software engineering and show us how you'll make it #beautiful and make it a production ready code.
There should be these endpoints:
GET /products- gets all products.GET /products?name={name}- finds all products matching the specified name.GET /products/{id}- gets the project that matches the specified ID - ID is a GUID.POST /products- creates a new product.PUT /products/{id}- updates a product.DELETE /products/{id}- deletes a product and its options.GET /products/{id}/options- finds all options for a specified product.GET /products/{id}/options/{optionId}- finds the specified product option for the specified product.POST /products/{id}/options- adds a new product option to the specified product.PUT /products/{id}/options/{optionId}- updates the specified product option.DELETE /products/{id}/options/{optionId}- deletes the specified product option.
All models are specified in the /Models folder, but should conform to:
Product:
{
"Id": "01234567-89ab-cdef-0123-456789abcdef",
"Name": "Product name",
"Description": "Product description",
"Price": 123.45,
"DeliveryPrice": 12.34
}
Products:
{
"Items": [
{
// product
},
{
// product
}
]
}
Product Option:
{
"Id": "01234567-89ab-cdef-0123-456789abcdef",
"Name": "Product name",
"Description": "Product description"
}
Product Options:
{
"Items": [
{
// product option
},
{
// product option
}
]
}