|
|
@ -0,0 +1,122 @@ |
|
|
|
|
|
|
|
using System; |
|
|
|
|
|
|
|
using System.Collections.Generic; |
|
|
|
|
|
|
|
using System.Linq; |
|
|
|
|
|
|
|
using System.Text; |
|
|
|
|
|
|
|
using System.Threading.Tasks; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
namespace InventoryManagement.Components |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
internal class InventoryManager |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
public void AddProduct(Product product) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
using (var context = new InventoryContext()) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
if (context.Products.Any(p => p.Name == product.Name)) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
Console.WriteLine("Product with the same name already exists."); |
|
|
|
|
|
|
|
return; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
context.Products.Add(product); |
|
|
|
|
|
|
|
context.SaveChanges(); |
|
|
|
|
|
|
|
Console.WriteLine($"{product.Name} added."); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public void BuyProduct(string name, int quantity) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
using (var context = new InventoryContext()) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
var product = context.Products.FirstOrDefault(p => p.Name == name); |
|
|
|
|
|
|
|
if (product == null) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
Console.WriteLine($"Cannot find the product named {name}"); |
|
|
|
|
|
|
|
return; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
product.Quantity += quantity; |
|
|
|
|
|
|
|
context.SaveChanges(); |
|
|
|
|
|
|
|
Console.WriteLine($"{product.Name}'s quantity: {product.Quantity}"); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public void BuyProduct(int id, int quantity) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
using (var context = new InventoryContext()) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
var product = context.Products.Find(id); |
|
|
|
|
|
|
|
if (product == null) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
Console.WriteLine("Product not found."); |
|
|
|
|
|
|
|
return; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
product.Quantity += quantity; |
|
|
|
|
|
|
|
context.SaveChanges(); |
|
|
|
|
|
|
|
Console.WriteLine($"{product.Name}'s quantity: {product.Quantity}"); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public void SellProduct(string name, int quantity) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
using (var context = new InventoryContext()) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
var product = context.Products.FirstOrDefault(p => p.Name == name); |
|
|
|
|
|
|
|
if (product == null) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
Console.WriteLine($"Cannot find the product named {name}"); |
|
|
|
|
|
|
|
return; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (product.Quantity >= quantity) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
product.Quantity -= quantity; |
|
|
|
|
|
|
|
context.SaveChanges(); |
|
|
|
|
|
|
|
Console.WriteLine($"{quantity} units of {product.Name} sold."); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
else |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
Console.WriteLine($"Insufficient quantity in stock (Current: {product.Quantity})"); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public void SellProduct(int id, int quantity) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
using (var context = new InventoryContext()) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
var product = context.Products.Find(id); |
|
|
|
|
|
|
|
if (product == null) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
Console.WriteLine("Product not found."); |
|
|
|
|
|
|
|
return; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (product.Quantity >= quantity) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
product.Quantity -= quantity; |
|
|
|
|
|
|
|
context.SaveChanges(); |
|
|
|
|
|
|
|
Console.WriteLine($"{quantity} units of {product.Name} sold."); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
else |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
Console.WriteLine($"Insufficient quantity in stock (Current: {product.Quantity})"); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public void ShowInventory() |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
using (var context = new InventoryContext()) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
Console.WriteLine("********** Current Inventory **********"); |
|
|
|
|
|
|
|
foreach (var product in context.Products) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
Console.WriteLine($"ID: {product.Id}, Name: {product.Name}, Quantity: {product.Quantity}"); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
Console.WriteLine("****************************************"); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |