public ServiceResponse <Data.Models.Product> ArchiveProduct(int id) { var product = _db.Products.Find(id); if (product != null) { try { product.IsArchived = true; _db.SaveChanges(); return(new ServiceResponse <Data.Models.Product> { Data = product, IsSuccess = true, Message = "Successfully archived product.", Time = DateTime.UtcNow }); } catch (Exception e) { return(new ServiceResponse <Data.Models.Product> { Data = null, IsSuccess = false, Message = "Failed to archive product.", Time = DateTime.UtcNow }); } } return(new ServiceResponse <Data.Models.Product> { Data = null, IsSuccess = false, Message = "Failed to archive product.", Time = DateTime.UtcNow }); }
public ServiceResponse <bool> GenerateOpenOrder(SalesOrder order) { _logger.LogInformation("Generating new order."); foreach (var item in order.SalesOrderItems) { item.Product = _productService.GetProductById(item.Product.Id); var inventoryId = _inventoryService.GetByProductId(item.Product.Id).Id; _inventoryService.UpdateUnitsAvailable(inventoryId, -item.Quantity); } try { _db.SalesOrders.Add(order); _db.SaveChanges(); _logger.LogInformation($"Open order generated. ID: {order.Id}"); return(new ServiceResponse <bool> { Data = true, IsSuccess = true, Message = "Open order created", Time = DateTime.UtcNow }); } catch (Exception e) { _logger.LogError("Failed to create open order."); return(new ServiceResponse <bool> { Data = false, IsSuccess = false, Message = e.StackTrace, Time = DateTime.UtcNow }); } }
public ServiceResponse <ProductInventory> UpdateUnitsAvailable(int id, int adjustment) { try { var inventory = _db.ProductInventories .Include(inv => inv.Product) .First(inv => inv.Product.Id == id); inventory.QuantityOnHand += adjustment; try { CreateSnapshot(inventory); } catch (Exception e) { _logger.LogError("Error creating snapshot. Stacktrace: " + e.StackTrace); } _db.SaveChanges(); return(new ServiceResponse <ProductInventory> { Data = inventory, IsSuccess = true, Message = $"Product {id} inventory adjusted", Time = DateTime.UtcNow }); } catch (Exception e) { return(new ServiceResponse <ProductInventory> { Data = null, IsSuccess = false, Message = "Error updating Product Inventory. Error: " + e.StackTrace, Time = DateTime.UtcNow }); } }
public ServiceResponse <Data.Models.Customer> CreateCustomer(Data.Models.Customer customer) { try { _db.Customers.Add(customer); _db.SaveChanges(); return(new ServiceResponse <Data.Models.Customer> { Data = customer, IsSuccess = true, Message = "New customer added.", Time = DateTime.UtcNow }); } catch (Exception e) { return(new ServiceResponse <Data.Models.Customer> { Data = null, IsSuccess = false, Message = e.StackTrace, Time = DateTime.UtcNow }); } }