public ServiceResponse <data.models.Customer> CreateCustomer(data.models.Customer customer) { try { _db.Customers.Add(customer); _db.SaveChanges(); return(new ServiceResponse <data.models.Customer> { IsSuccess = true, Message = "New customer added", Time = DateTime.UtcNow, Data = customer }); } catch (Exception e) { return(new ServiceResponse <data.models.Customer> { IsSuccess = false, Message = e.StackTrace, Time = DateTime.UtcNow, Data = customer }); } }
public ServiceResponse <data.models.Product> ArchiveProduct(int id) { var identifiedProduct = _db.Products.Find(id); identifiedProduct.IsArchived = true; _db.SaveChanges(); return(new ServiceResponse <data.models.Product> { Data = identifiedProduct, Message = "Product Archived", IsSuccess = true, Time = DateTime.UtcNow }); }
public ServiceResponse <ProductInventory> UpdateUnitsAvailable(int id, int adjustment) { var now = DateTime.UtcNow; var inventory = _db.ProductInventories .Include(inv => inv.Product) .First(inv => inv.Product.Id == id); inventory.QuantityOnHand += adjustment; try { CreateSnapshot(); } catch (Exception e) { _logger.LogError("Error creating inventory snapshot."); _logger.LogError(e.StackTrace); } _db.SaveChanges(); return(new ServiceResponse <ProductInventory> { IsSuccess = true, Data = inventory, Message = $"Product {id} inventory adjusted", Time = now }); }
public ServiceResponse <bool> GenerateOpenOrder(SalesOrder order) { foreach (var item in order.LineItems) { item.Product = _productService.GetProductById(item.Product.Id); var inventoryId = _inventoryService.GetByProductId(item.Product.Id); _inventoryService.UpdateUnitsAvailable(inventoryId.Id, -item.Quantity); } _db.SalesOrders.Add(order); _db.SaveChanges(); return(new ServiceResponse <bool> { Data = true, IsSuccess = true, Time = DateTime.UtcNow, Message = "Successfully generated invoice" }); }