Beispiel #1
0
 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
            });
        }
Beispiel #4
0
        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"
            });
        }