/// <summary> /// Constructor that requires the interface for the database and log /// </summary> /// <param name="db"></param> /// <param name="log"></param> public VendingMachine(IVendingService db, ILogService log) { _db = db; _log = log; _transMgr = new TransactionManager(_db, _log); _roleMgr = new RoleManager(null); }
/// <summary> /// Creates a transaction item for each product and associates that with a vending transaction /// </summary> /// <param name="db">Database interface used to create the data</param> public static void PopulateDatabaseWithTransactions(IVendingService db) { using (TransactionScope scope = new TransactionScope()) { // Get a list of products and users List <ProductItem> products = db.GetProductItems(); List <UserItem> users = db.GetUserItems(); VendingTransaction vendTrans = new VendingTransaction() { Date = DateTime.UtcNow, UserId = users[0].Id }; vendTrans.Id = db.AddVendingTransaction(vendTrans); foreach (ProductItem prodItem in products) { // Add Transaction Item TransactionItem item = new TransactionItem() { SalePrice = prodItem.Price, VendingTransactionId = vendTrans.Id, ProductId = prodItem.Id }; item.Id = db.AddTransactionItem(item); } scope.Complete(); } }
public HomeController(IVendingService db, ILogService log) { _db = db; _log = log; //ReportManager reportMgr = new ReportManager(db); //Report report = reportMgr.GetReport(2018, _db.GetProductItems()); //var items = report.ReportItems; }
public MainWindowViewModel() { PurchaseOutput = "..."; service = new VendingService(); acceptedCash = service.GetAcceptedDenominations(); PurchaseCommand = new MyCommand(Purchase); InitCollections(); }
public BaseController(IVendingService db, IVendingMachine vm, IHttpContextAccessor httpContext) : base(httpContext) { var user = GetSessionData <UserItem>(UserKey); vm.SetUser(user); _roleMgr = new RoleManager(user); _vm = vm; _db = db; }
public AuthController(IVendingService db, IHttpContextAccessor httpContext) : base(httpContext) { _db = db; // Get the role manager from the session _roleMgr = GetSessionData <RoleManager>(RoleMgrKey); // If it does not exist on the session then add it if (_roleMgr == null) { // Since the role manager is being created then a user still needs to be authenticated _roleMgr = new RoleManager(null); SetSessionData(RoleMgrKey, _roleMgr); } }
public static Change PopulateLogFileWithOperations(IVendingService db, ILogService log) { TransactionManager trans = new TransactionManager(db, log); trans.AddFeedMoneyOperation(15.0); trans.AddFeedMoneyOperation(10.0); var products = db.GetProductItems(); foreach (var product in products) { trans.AddPurchaseTransaction(product.Id); } return(trans.AddGiveChangeOperation()); }
public ReportingService(IProductRepository productRepository, IVendingService vendingService) { this.vendingService = vendingService; this.productRepository = productRepository; }
public static void PopulateDatabaseWithInventory(IVendingService db) { using (TransactionScope scope = new TransactionScope()) { CategoryItem categoryItem = new CategoryItem() { Name = "Chips", Noise = "Crunch, Crunch, Crunch, Yum!" }; categoryItem.Id = db.AddCategoryItem(categoryItem); // Add Product 1 ProductItem productItem = new ProductItem() { Name = "Lays Regular", Price = 0.50, CategoryId = categoryItem.Id }; productItem.Id = db.AddProductItem(productItem); InventoryItem inventoryItem = new InventoryItem() { Column = 1, Row = 1, Qty = 5, ProductId = productItem.Id }; inventoryItem.Id = db.AddInventoryItem(inventoryItem); // Add Product 2 productItem.Name = "Pringles Barbeque"; productItem.Price = 0.65; productItem.Id = db.AddProductItem(productItem); inventoryItem.Column = 2; inventoryItem.ProductId = productItem.Id; inventoryItem.Id = db.AddInventoryItem(inventoryItem); // Add Product 3 productItem.Name = "Ruffles Sour Cream and Chives"; productItem.Price = 0.75; productItem.Id = db.AddProductItem(productItem); inventoryItem.Column = 3; inventoryItem.ProductId = productItem.Id; inventoryItem.Id = db.AddInventoryItem(inventoryItem); // Add Product 4 categoryItem.Name = "Candy"; categoryItem.Noise = "Lick, Lick, Yum!"; categoryItem.Id = db.AddCategoryItem(categoryItem); productItem.Name = "M&Ms Plain"; productItem.Price = 0.55; productItem.CategoryId = categoryItem.Id; productItem.Id = db.AddProductItem(productItem); inventoryItem.Row = 2; inventoryItem.Column = 1; inventoryItem.ProductId = productItem.Id; inventoryItem.Id = db.AddInventoryItem(inventoryItem); // Add Product 5 productItem.Name = "M&Ms Peanut"; productItem.Price = 0.55; productItem.Id = db.AddProductItem(productItem); inventoryItem.Column = 2; inventoryItem.ProductId = productItem.Id; inventoryItem.Id = db.AddInventoryItem(inventoryItem); // Add Product 6 productItem.Name = "Gummy Bears"; productItem.Price = 1.00; productItem.Id = db.AddProductItem(productItem); inventoryItem.Column = 3; inventoryItem.ProductId = productItem.Id; inventoryItem.Id = db.AddInventoryItem(inventoryItem); // Add Product 7 categoryItem.Name = "Nuts"; categoryItem.Noise = "Munch, Munch, Yum!"; categoryItem.Id = db.AddCategoryItem(categoryItem); productItem.Name = "Peanuts"; productItem.Price = 1.00; productItem.CategoryId = categoryItem.Id; productItem.Id = db.AddProductItem(productItem); inventoryItem.Row = 3; inventoryItem.Column = 1; inventoryItem.ProductId = productItem.Id; inventoryItem.Id = db.AddInventoryItem(inventoryItem); // Add Product 8 productItem.Name = "Cashews"; productItem.Price = 1.50; productItem.Id = db.AddProductItem(productItem); inventoryItem.Column = 2; inventoryItem.ProductId = productItem.Id; inventoryItem.Id = db.AddInventoryItem(inventoryItem); // Add Product 9 productItem.Name = "Sunflower Seeds"; productItem.Price = 1.25; productItem.Id = db.AddProductItem(productItem); inventoryItem.Column = 3; inventoryItem.ProductId = productItem.Id; inventoryItem.Id = db.AddInventoryItem(inventoryItem); // Add Product 10 categoryItem.Name = "Gum"; categoryItem.Noise = "Chew, Chew, Yum!"; categoryItem.Id = db.AddCategoryItem(categoryItem); productItem.Name = "Hubba Bubba"; productItem.Price = 0.75; productItem.CategoryId = categoryItem.Id; productItem.Id = db.AddProductItem(productItem); inventoryItem.Row = 4; inventoryItem.Column = 1; inventoryItem.ProductId = productItem.Id; inventoryItem.Id = db.AddInventoryItem(inventoryItem); // Add Product 11 productItem.Name = "Bubble Yum"; productItem.Price = 0.75; productItem.Id = db.AddProductItem(productItem); inventoryItem.Column = 2; inventoryItem.ProductId = productItem.Id; inventoryItem.Id = db.AddInventoryItem(inventoryItem); // Add Product 12 productItem.Name = "Trident"; productItem.Price = 0.65; productItem.Id = db.AddProductItem(productItem); inventoryItem.Column = 3; inventoryItem.ProductId = productItem.Id; inventoryItem.Id = db.AddInventoryItem(inventoryItem); scope.Complete(); } }
public TransactionManager(IVendingService db, ILogService log) { _db = db; _log = log; }
public UserController(IVendingService db, IHttpContextAccessor httpContext) : base(db, httpContext) { }
/// <summary> /// Creates the products, inventory, and categories to support a 4x3 vending machine /// </summary> /// <param name="db">Database interface used to create the data</param> public static void PopulateDatabaseWithInventory(IVendingService db) { using (TransactionScope scope = new TransactionScope()) { CategoryItem categoryItem = new CategoryItem() { Name = "Chips", Noise = "Crunch, Crunch, Crunch, Yum!" }; categoryItem.Id = db.AddCategoryItem(categoryItem); // Add Product 1 ProductItem productItem = new ProductItem() { Name = "Lays", Price = 0.50, Image = "https://image.flaticon.com/icons/svg/305/305385.svg", CategoryId = categoryItem.Id }; productItem.Id = db.AddProductItem(productItem); InventoryItem inventoryItem = new InventoryItem() { Column = 1, Row = 1, Qty = 5, ProductId = productItem.Id }; inventoryItem.Id = db.AddInventoryItem(inventoryItem); // Add Product 2 productItem.Name = "Pringles"; productItem.Image = "https://image.flaticon.com/icons/svg/1228/1228383.svg"; productItem.Price = 0.65; productItem.Id = db.AddProductItem(productItem); inventoryItem.Column = 2; inventoryItem.ProductId = productItem.Id; inventoryItem.Id = db.AddInventoryItem(inventoryItem); // Add Product 3 productItem.Name = "Ruffles"; productItem.Image = "https://image.flaticon.com/icons/svg/1046/1046758.svg"; productItem.Price = 0.75; productItem.Id = db.AddProductItem(productItem); inventoryItem.Column = 3; inventoryItem.ProductId = productItem.Id; inventoryItem.Id = db.AddInventoryItem(inventoryItem); // Add Product 4 categoryItem.Name = "Candy"; categoryItem.Noise = "Lick, Lick, Yum!"; categoryItem.Id = db.AddCategoryItem(categoryItem); productItem.Name = "M&Ms Plain"; productItem.Image = "https://image.flaticon.com/icons/svg/1296/1296913.svg"; productItem.Price = 0.55; productItem.CategoryId = categoryItem.Id; productItem.Id = db.AddProductItem(productItem); inventoryItem.Row = 2; inventoryItem.Column = 1; inventoryItem.ProductId = productItem.Id; inventoryItem.Id = db.AddInventoryItem(inventoryItem); // Add Product 5 productItem.Name = "M&Ms Peanut"; productItem.Image = "https://image.flaticon.com/icons/svg/1296/1296944.svg"; productItem.Price = 0.55; productItem.Id = db.AddProductItem(productItem); inventoryItem.Column = 2; inventoryItem.ProductId = productItem.Id; inventoryItem.Id = db.AddInventoryItem(inventoryItem); // Add Product 6 productItem.Name = "Gummy Bears"; productItem.Image = "https://image.flaticon.com/icons/svg/119/119497.svg"; productItem.Price = 1.00; productItem.Id = db.AddProductItem(productItem); inventoryItem.Column = 3; inventoryItem.ProductId = productItem.Id; inventoryItem.Id = db.AddInventoryItem(inventoryItem); // Add Product 7 categoryItem.Name = "Nuts"; categoryItem.Noise = "Munch, Munch, Yum!"; categoryItem.Id = db.AddCategoryItem(categoryItem); productItem.Name = "Peanuts"; productItem.Image = "https://image.flaticon.com/icons/svg/811/811455.svg"; productItem.Price = 1.00; productItem.CategoryId = categoryItem.Id; productItem.Id = db.AddProductItem(productItem); inventoryItem.Row = 3; inventoryItem.Column = 1; inventoryItem.ProductId = productItem.Id; inventoryItem.Id = db.AddInventoryItem(inventoryItem); // Add Product 8 productItem.Name = "Cashews"; productItem.Image = "https://image.flaticon.com/icons/svg/1256/1256949.svg"; productItem.Price = 1.50; productItem.Id = db.AddProductItem(productItem); inventoryItem.Column = 2; inventoryItem.ProductId = productItem.Id; inventoryItem.Id = db.AddInventoryItem(inventoryItem); // Add Product 9 productItem.Name = "Sunflower Seeds"; productItem.Image = "https://image.flaticon.com/icons/svg/188/188352.svg"; productItem.Price = 1.25; productItem.Id = db.AddProductItem(productItem); inventoryItem.Column = 3; inventoryItem.ProductId = productItem.Id; inventoryItem.Id = db.AddInventoryItem(inventoryItem); // Add Product 10 categoryItem.Name = "Gum"; categoryItem.Noise = "Chew, Chew, Yum!"; categoryItem.Id = db.AddCategoryItem(categoryItem); productItem.Name = "Hubba Bubba"; productItem.Image = "https://image.flaticon.com/icons/svg/287/287062.svg"; productItem.Price = 0.75; productItem.CategoryId = categoryItem.Id; productItem.Id = db.AddProductItem(productItem); inventoryItem.Row = 4; inventoryItem.Column = 1; inventoryItem.ProductId = productItem.Id; inventoryItem.Id = db.AddInventoryItem(inventoryItem); // Add Product 11 productItem.Name = "Bubble Yum"; productItem.Image = "https://image.flaticon.com/icons/svg/1331/1331714.svg"; productItem.Price = 0.75; productItem.Id = db.AddProductItem(productItem); inventoryItem.Column = 2; inventoryItem.ProductId = productItem.Id; inventoryItem.Id = db.AddInventoryItem(inventoryItem); // Add Product 12 productItem.Name = "Trident"; productItem.Image = "https://image.flaticon.com/icons/svg/524/524402.svg"; productItem.Price = 0.65; productItem.Id = db.AddProductItem(productItem); inventoryItem.Column = 3; inventoryItem.ProductId = productItem.Id; inventoryItem.Id = db.AddInventoryItem(inventoryItem); scope.Complete(); } }
public VendingItemController(IVendingService db) { _db = db; }
public VendingTransactionController(IVendingService db) { _db = db; }
public UserManager(IVendingService db) { _db = db; }
public VendingApiController(IVendingService db, IVendingMachine vm, IHttpContextAccessor httpContext) : base(db, vm, httpContext) { }
public LogController(ILogService loggingDAO, IVendingService db, IHttpContextAccessor httpContext) : base(db, httpContext) { _loggingDAO = loggingDAO; }
public CategoryController(IVendingService db) { _db = db; }
public RoleController(IVendingService db) { _db = db; }
public PaymentController(IVendingService vendingService, ICashRegister cashRegister, IMapper mapper) { _vendingService = vendingService; _cashRegister = cashRegister; _mapper = mapper; }
public ReportManager(IVendingService db) { _db = db; }
public VendingController(IVendingService dal) { this.dal = dal; }
public InventoryController(IVendingService db) { _db = db; }
public VendingBaseController(IVendingService db, ILogService log) { _db = db; _log = log; }
/// <summary> /// Creates a user for each role type /// </summary> /// <param name="db">Database interface used to create the data</param> public static void PopulateDatabaseWithUsers(IVendingService db) { using (TransactionScope scope = new TransactionScope()) { PasswordManager passHelper = new PasswordManager("a"); db.AddRoleItem(new RoleItem() { Id = 1, Name = "Administrator" }); db.AddRoleItem(new RoleItem() { Id = 2, Name = "Customer" }); db.AddRoleItem(new RoleItem() { Id = 3, Name = "Executive" }); db.AddRoleItem(new RoleItem() { Id = 4, Name = "Serviceman" }); UserItem item = new UserItem() { FirstName = "Joe", LastName = "Piscapoe", Username = "******", Email = "*****@*****.**", RoleId = (int)RoleManager.eRole.Administrator }; item.Hash = passHelper.Hash; item.Salt = passHelper.Salt; item.Id = db.AddUserItem(item); item = new UserItem() { FirstName = "John", LastName = "Doe", Username = "******", Email = "*****@*****.**", RoleId = (int)RoleManager.eRole.Customer }; item.Hash = passHelper.Hash; item.Salt = passHelper.Salt; item.Id = db.AddUserItem(item); item = new UserItem() { FirstName = "Sally", LastName = "Mae", Username = "******", Email = "*****@*****.**", RoleId = (int)RoleManager.eRole.Executive }; item.Hash = passHelper.Hash; item.Salt = passHelper.Salt; item.Id = db.AddUserItem(item); item = new UserItem() { FirstName = "Alex", LastName = "Carol", Username = "******", Email = "*****@*****.**", RoleId = (int)RoleManager.eRole.Serviceman }; item.Hash = passHelper.Hash; item.Salt = passHelper.Salt; item.Id = db.AddUserItem(item); scope.Complete(); } }
public TransactionItemController(IVendingService db, IHttpContextAccessor httpContext) : base(db, httpContext) { }
/// <summary> /// Creates each type of vending operation and a purchase operation for each product in the system /// </summary> /// <param name="db">Database interface used to create the data</param> /// <param name="log">Log interface used to create the file data</param> public static void PopulateLogFileWithOperations(IVendingService db, ILogService log) { OperationTypeItem type = new OperationTypeItem(); type.Id = (int)VendingOperation.eOperationType.Invalid; type.Name = VendingOperation.eOperationType.Invalid.ToString(); log.AddOperationTypeItem(type); type.Id = (int)VendingOperation.eOperationType.FeedMoney; type.Name = VendingOperation.eOperationType.FeedMoney.ToString(); log.AddOperationTypeItem(type); type.Id = (int)VendingOperation.eOperationType.GiveChange; type.Name = VendingOperation.eOperationType.GiveChange.ToString(); log.AddOperationTypeItem(type); type.Id = (int)VendingOperation.eOperationType.PurchaseItem; type.Name = VendingOperation.eOperationType.PurchaseItem.ToString(); log.AddOperationTypeItem(type); var users = db.GetUserItems(); var products = db.GetProductItems(); double runningTotal = 0.0; foreach (var user in users) { VendingOperation op = new VendingOperation(); op.OperationType = VendingOperation.eOperationType.FeedMoney; op.Price = 20.0; op.RunningTotal = runningTotal += op.Price; op.TimeStamp = DateTime.UtcNow; op.UserId = user.Id; log.LogOperation(op); op.OperationType = VendingOperation.eOperationType.FeedMoney; op.Price = 10.0; op.RunningTotal = runningTotal += op.Price; op.TimeStamp = DateTime.UtcNow; op.UserId = user.Id; log.LogOperation(op); foreach (var product in products) { op = new VendingOperation(); op.OperationType = VendingOperation.eOperationType.PurchaseItem; op.Price = product.Price; op.RunningTotal = runningTotal - op.Price; op.TimeStamp = DateTime.UtcNow; op.UserId = user.Id; op.ProductId = product.Id; log.LogOperation(op); } op.OperationType = VendingOperation.eOperationType.GiveChange; op.Price = runningTotal; runningTotal = 0.0; op.RunningTotal = runningTotal; op.TimeStamp = DateTime.UtcNow; op.UserId = user.Id; op.ProductId = BaseItem.InvalidId; log.LogOperation(op); } }
public void Initialize() { _db = new VendingDBService(_connectionString); //_db = new MockVendingDBService(); // Initialize a new transaction scope. This automatically begins the transaction. _tran = new TransactionScope(); PasswordManager passHelper = new PasswordManager("Abcd!234"); if (_userId1 == BaseItem.InvalidId) { var temp = new UserItem() { Id = BaseItem.InvalidId }; temp.FirstName = "Amy"; temp.LastName = "Rupp"; temp.Username = "******"; temp.Hash = passHelper.Hash; temp.Salt = passHelper.Salt; temp.Email = "*****@*****.**"; temp.RoleId = (int)RoleManager.eRole.Customer; // Add user item _userId1 = _db.AddUserItem(temp); Assert.AreNotEqual(0, _userId1); } if (_userId2 == BaseItem.InvalidId) { var temp = new UserItem() { Id = BaseItem.InvalidId }; temp.FirstName = "Chloe"; temp.LastName = "Rupp"; temp.Username = "******"; temp.Hash = passHelper.Hash; temp.Salt = passHelper.Salt; temp.Email = "*****@*****.**"; temp.RoleId = (int)RoleManager.eRole.Customer; // Add user item _userId2 = _db.AddUserItem(temp); Assert.AreNotEqual(0, _userId2); } if (_categoryId == BaseItem.InvalidId) { var temp = new CategoryItem() { Id = BaseItem.InvalidId }; temp.Name = "TestCategory"; temp.Noise = "CategoryNoise"; // Add category item _categoryId = _db.AddCategoryItem(temp); Assert.AreNotEqual(0, _categoryId); } if (_productId == BaseItem.InvalidId) { // Add product item _productId = _db.AddProductItem( new ProductItem() { Name = "TestProduct", Price = 0.50, CategoryId = _categoryId, Image = "http://localhost:8080/api/food/peanuts.jpg" }); Assert.AreNotEqual(0, _productId); } if (_inventoryId == BaseItem.InvalidId) { // Add inventory item _inventoryId = _db.AddInventoryItem( new InventoryItem() { Row = 1, Column = 1, Qty = 4, ProductId = _productId }); Assert.AreNotEqual(0, _inventoryId); } if (_vendingTransactionId == BaseItem.InvalidId) { // Add vending transaction _vendingTransactionId = _db.AddVendingTransaction( new VendingTransaction() { Date = DateTime.UtcNow, UserId = _userId1 }); Assert.AreNotEqual(0, _vendingTransactionId); } }
public VendingApiController(IVendingService db, ILogService log) : base(db, log) { }
public ProductController(IVendingService vendingService, IMapper mapper) { _vendingService = vendingService; _mapper = mapper; }