Example #1
0
        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
            });
        }
Example #2
0
        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
                });
            }
        }
Example #4
0
 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
         });
     }
 }