public void Update(int productID, ProductLogModel model) { using (var uow = new UnitOfWork(new DataContext())) { var product = uow.Products.Get(productID); var productLog = new ProductLog(); if (model.Action == "Stock In") { product.Quantity = product.Quantity + model.Quantity; } else { // quantity to remove //check for limit to be remove var newQuantity = product.Quantity - model.Quantity; if (newQuantity < product.Limit) { throw new ApplicationException("Quantity result must be greater than product limit!"); } else { product.Quantity = newQuantity; } } productLog.Action = model.Action; productLog.CreateTimeStamp = model.Date; productLog.ProductID = productID; productLog.Quantity = model.Quantity; productLog.Remarks = model.Remarks; uow.ProductLogs.Add(productLog); uow.Products.Edit(product); uow.Complete(); } }
public List <ProductLogModel> GetAll(string criteria) { using (var uow = new UnitOfWork(new DataContext())) { var models = new List <ProductLogModel>(); var products = uow.ProductLogs.GetAll(criteria); foreach (var product in products) { var model = new ProductLogModel(); model.ProductID = product.ProductID; model.Action = product.Action; model.ProductName = product.Product.Description; model.Quantity = product.Quantity; model.Remarks = product.Remarks; models.Add(model); } return(models); } }
public List <ProductLogModel> GetAll(int _productID, string criteria) { using (var uow = new UnitOfWork(new DataContext())) { var models = new List <ProductLogModel>(); var products = uow.ProductLogs.GetAll(_productID, criteria).OrderByDescending(x => x.CreateTimeStamp); foreach (var product in products) { var model = new ProductLogModel(); model.Date = product.CreateTimeStamp; model.ProductID = product.ProductID; model.Action = product.Action; model.ProductName = product.Product.Description; model.Quantity = product.Quantity; model.Remarks = product.Remarks; models.Add(model); } return(models); } }
private void Save() { try { if (!ValidatedFields()) { return; } var model = new ProductLogModel(); model.Date = dtDate.Value; model.Quantity = Utils.ConvertToInteger(txtQuantity.Text); model.Remarks = txtRemarks.Text; model.Action = action; Factories.CreateProductLog().Update(productID, model); ProductUpdated(); this.Close(); } catch (Exception ex) { LocalUtils.ShowErrorMessage(this, ex.Message); } }