Ejemplo n.º 1
0
        public ServiceResponse <Data.Model.Customer> CreateCustomer(Data.Model.Customer customer)
        {
            try
            {
                solarDb.Customers.Add(customer);
                solarDb.SaveChanges();

                return(new ServiceResponse <Data.Model.Customer>
                {
                    isSuccess = true,
                    Message = "New customer added",
                    Time = DateTime.UtcNow,
                    Data = customer,
                });
            }
            catch (System.Exception e)
            {
                return(new ServiceResponse <Data.Model.Customer>
                {
                    isSuccess = false,
                    Message = e.StackTrace,
                    Time = DateTime.UtcNow,
                    Data = customer,
                });
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Adds a new Customer record
        /// </summary>
        /// <param name="customer">Customer instance</param>
        /// <returns>ServiceResponse<Customer></returns>
        ServiceResponse <Data.Models.Customer> ICustomerService.CreateCustomer(Data.Models.Customer customer)
        {
            try
            {
                _db.Customers.Add(customer);
                _db.SaveChanges();

                return(new ServiceResponse <Data.Models.Customer> {
                    IsSuccess = true,
                    Data = customer,
                    Message = "Customer was added",
                    Time = DateTime.UtcNow
                });
            }
            catch (Exception ex)
            {
                return(new ServiceResponse <Data.Models.Customer>
                {
                    IsSuccess = false,
                    Data = customer,
                    Message = ex.StackTrace,
                    Time = DateTime.UtcNow
                });
            }
        }
Ejemplo n.º 3
0
        /// <summary>
        ///  Create an open SalesOrder
        /// </summary>
        /// <param name="order"></param>
        /// <returns></returns>
        public ServiceResponse <bool> GenerateOpenOrder(SalesOrder order)
        {
            _logger.LogInformation("Generatating new order");

            foreach (var item in order.SalesOrderItem)
            {
                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();

                return(new ServiceResponse <bool> {
                    IsSucces = true,
                    Data = true,
                    Message = "Open order created",
                    Time = DateTime.UtcNow
                });
            }
            catch (Exception e) {
                return(new ServiceResponse <bool> {
                    IsSucces = false,
                    Data = false,
                    Message = e.StackTrace,
                    Time = DateTime.UtcNow
                });
            }
        }
Ejemplo n.º 4
0
        /// <summary>
        ///     Add a new Customer
        /// </summary>
        /// <param name="customer"></param>
        public ServiceResponse <Customer> CreateCustomer(Customer customer)
        {
            try
            {
                _solarDbContext.Customers.Add(customer);
                _solarDbContext.SaveChanges();

                return(new ServiceResponse <Customer>
                {
                    IsSuccess = true,
                    Message = "New Customer added",
                    Time = DateTime.UtcNow,
                    Data = customer
                });
            }
            catch (Exception e)
            {
                return(new ServiceResponse <Customer>
                {
                    IsSuccess = false,
                    Message = "Error while adding Customer",
                    Time = DateTime.UtcNow,
                    Data = null
                });
            }
        }
Ejemplo n.º 5
0
        /// <summary>
        /// Add a new record
        /// </summary>
        /// <returns>Service response <Customer></Customer></returns>
        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)
            {
                return(new ServiceResponse <Data.Models.Customer>
                {
                    IsSuccess = false,
                    Message = "Failed to add customer",
                    Time = DateTime.UtcNow,
                    Data = customer
                });
            }
        }
Ejemplo n.º 6
0
 /// <summary>
 /// Adds a new customer record
 /// </summary>
 /// <param name="customer"></param>
 /// <returns>ServiceResponse<Customer></returns>
 public ServiceResponse <Customer> CreateCustomer(Customer customer)
 {
     try
     {
         _db.Customers.Add(customer);
         _db.SaveChanges();
         return(new ServiceResponse <Customer>
         {
             IsSuccess = true,
             Message = "New customer added",
             Time = DateTime.UtcNow,
             Data = customer
         });
     }
     catch (Exception e)
     {
         return(new ServiceResponse <Customer>
         {
             IsSuccess = false,
             Message = e.StackTrace,
             Time = DateTime.UtcNow,
             Data = customer
         });
     }
 }
Ejemplo n.º 7
0
        public ServiceResponse <Data.Models.Customer> CreateCustomer(Data.Models.Customer customer)
        {
            try
            {
                customer.CreatedDate = DateTime.Now;
                customer.UpdatedDate = DateTime.Now;
                customer.PrimaryAddress.CreatedDate = DateTime.Now;
                customer.PrimaryAddress.UpdatedDate = DateTime.Now;

                _db.Customers.Add(customer);
                _db.SaveChanges();

                return(new ServiceResponse <Data.Models.Customer>
                {
                    Data = customer,
                    IsSuccess = true,
                    Message = "created Successfully",
                    Time = DateTime.UtcNow
                });
            }
            catch (Exception ex)
            {
                return(new ServiceResponse <Data.Models.Customer>
                {
                    Data = null,
                    IsSuccess = false,
                    Message = ex.StackTrace,
                    Time = DateTime.UtcNow
                });
            }
        }
Ejemplo n.º 8
0
        /// <summary>
        /// Archives a product by setting boolean IsArchived to true
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public ServiceResponse <Product> ArchiveProduct(int id)
        {
            try
            {
                var product = GetProduct(id);
                product.IsArchived = true;
                _solarDb.SaveChanges();

                return(new ServiceResponse <Product>
                {
                    Data = product,
                    Time = DateTime.UtcNow,
                    IsSuccess = true,
                    Message = "Archived product"
                });
            }
            catch (Exception ex)
            {
                return(new ServiceResponse <Product>
                {
                    Data = null,
                    Time = DateTime.UtcNow,
                    IsSuccess = false,
                    Message = ex.StackTrace
                });
            }
        }
Ejemplo n.º 9
0
        /// <summary>
        ///     Generates a new Invoice for an order
        /// </summary>
        /// <param name="salesOrder"></param>
        public ServiceResponse <bool> GenerateInvoiceForOrder(SalesOrder salesOrder)
        {
            foreach (var item in salesOrder.SalesOrderItems)
            {
                item.Product  = _productService.GetProductById(item.Product.Id);
                item.Quantity = item.Quantity;
                var inventoryId = _inventoryService.GetProductInventoryById(item.Product.Id).Id;

                _inventoryService.UpdateUnitsAvailable(inventoryId, -item.Quantity);
            }

            try
            {
                _solarDbContext.SalesOrders.Add(salesOrder);
                _solarDbContext.SaveChanges();

                return(new ServiceResponse <bool>
                {
                    Time = DateTime.UtcNow,
                    IsSuccess = true,
                    Data = true,
                    Message = "Created Invoice"
                });
            }
            catch (Exception e)
            {
                return(new ServiceResponse <bool>
                {
                    Time = DateTime.UtcNow,
                    IsSuccess = false,
                    Data = false,
                    Message = "Error while creating Invoice"
                });
            }
        }
Ejemplo n.º 10
0
        public ServiceResponse <Data.Models.Product> CreateProduct(Data.Models.Product product)
        {
            try
            {
                _db.Products.Add(product);
                _db.SaveChanges();
                var newInventory = new ProductInventory
                {
                    Product        = product,
                    QuantityOnHand = 0,
                    IdealQuantity  = 10
                };
                _db.ProductInventories.Add(newInventory);
                _db.SaveChanges();

                return(new ServiceResponse <Data.Models.Product>
                {
                    Data = product,
                    Time = DateTime.UtcNow,
                    Message = "Add Product Success",
                    IsSuccess = true,
                });
            }
            catch (Exception e)
            {
                return(new ServiceResponse <Data.Models.Product>
                {
                    Data = product,
                    Time = DateTime.UtcNow,
                    Message = $"Getting Error: {e.Message}",
                    IsSuccess = false,
                });
            }
        }
Ejemplo n.º 11
0
        public ServiceResponse <bool> GenerateOpenOrderAndReturnResponse(data.models.SalesOrder orders)
        {
            foreach (data.models.SalesOrderItem order in orders.SalesOrderItems)
            {
                data.models.Product product = _productService.GetproductById(order.productId);

                if (product == null)
                {
                    return(ServiceResponse <bool> .Failed(false, $"Product represented as index {order.productId} was not found"));
                }

                data.models.ProductInventory inventory = _inventoryService.GetByProductId(product.id);
                int inventoryId = inventory.id;

                if (_inventoryService.UpdateUnitsAvailableAndReturnResponse(inventoryId, -(order.quantity)).IsSuccess == false)
                {
                    return(ServiceResponse <bool> .Failed(false, "Updating inventory was fail"));
                }
            }

            try {
                _db.SalesOrders.Add(orders);
                _db.SaveChanges();

                return(ServiceResponse <bool> .Successed(true, "Open order created"));
            } catch (Exception e) {
                return(ServiceResponse <bool> .Failed(false, e.StackTrace));
            }
        }
Ejemplo n.º 12
0
 /// <summary>
 /// Add new products to database
 /// </summary>
 /// <param name="product"></param>
 /// <returns></returns>
 public ServiceResponse <Data.Models.Product> CreateProduct(Data.Models.Product product)
 {
     try
     {
         _db.Products.Add(product);
         var newInventory = new ProductInventory
         {
             Product        = product,
             QuantityOnHand = 0,
             IdealQuantity  = 10
         };
         _db.ProductInventories.Add(newInventory);
         _db.SaveChanges();
         return(new ServiceResponse <Data.Models.Product>
         {
             Data = product,
             IsSuccess = true,
             Message = "Saved new product",
             Time = DateTime.Now
         });
     }
     catch (Exception e)
     {
         return(new ServiceResponse <Data.Models.Product>
         {
             Data = product,
             IsSuccess = false,
             Message = "Error saving new product",
             Time = DateTime.Now
         });
     }
 }
Ejemplo n.º 13
0
 /// <summary>
 /// Add Customer record
 /// </summary>
 /// <param name="customer"></param>
 /// <returns>ServiceResponse<Customer></returns>
 public ServiceResponse <Customer> CreateCustomer(Customer customer)
 {
     try
     {
         db.Add(customer);
         var response = db.SaveChanges();
         if (response >= 1)
         {
             return(new ServiceResponse <Customer>
             {
                 IsSuccess = true,
                 Message = "New Customer Added",
                 Time = DateTime.UtcNow,
                 Data = customer
             });
         }
         return(new ServiceResponse <Customer>
         {
             IsSuccess = false,
             Message = "Customer not Added",
             Time = DateTime.UtcNow,
             Data = customer
         });
     }
     catch (Exception ex)
     {
         return(new ServiceResponse <Customer>
         {
             IsSuccess = false,
             Message = ex.StackTrace,
             Time = DateTime.UtcNow,
             Data = null
         });
     }
 }
Ejemplo n.º 14
0
        /// <summary>
        /// Archives a Product by setting boolean IsArchived to true
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public ServiceResponse <Data.Models.Product> ArciveProduct(int id)
        {
            try
            {
                var product = _db.Products.Find(id);
                product.IsArchived = true;
                _db.SaveChanges();

                return(new ServiceResponse <Data.Models.Product>
                {
                    Data = product,
                    Time = DateTime.UtcNow,
                    Message = "Poduct archived",
                    IsSuccess = true
                });
            }

            catch (Exception e)
            {
                return(new ServiceResponse <Data.Models.Product>
                {
                    Data = null,
                    Time = DateTime.UtcNow,
                    Message = e.StackTrace,
                    IsSuccess = false
                });
            }
        }
Ejemplo n.º 15
0
        //Adds a new product to the database
        public ServiceResponse <Data.Models.Product> CreateProduct(Data.Models.Product product)
        {
            try{
                _db.Products.Add(product);
                ProductInventory newInventory = new ProductInventory()
                {
                    Product        = product,
                    QuantityOnHand = 0,
                    IdealQuantity  = 10
                };
                _db.ProductInventorys.Add(newInventory);
                _db.SaveChanges();

                return(new ServiceResponse <Data.Models.Product> {
                    Data = product,
                    IsSuccess = true,
                    Time = DateTime.UtcNow,
                    Message = "Saved new products"
                });
            }catch (Exception e)
            {
                return(new ServiceResponse <Data.Models.Product> {
                    Data = product,
                    IsSuccess = false,
                    Time = DateTime.UtcNow,
                    Message = e.StackTrace
                });
            }
        }
Ejemplo n.º 16
0
 /// <summary>
 /// Create a new customer
 /// </summary>
 /// <param name="customer"></param>
 /// <returns></returns>
 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 = "Add New Customer",
             Data = customer,
             Time = DateTime.UtcNow,
         });
     }
     catch (Exception e)
     {
         return(new ServiceResponse <Data.Models.Customer>
         {
             IsSuccess = false,
             Message = e.Message,
             Data = null,
             Time = DateTime.UtcNow,
         });
     }
 }
Ejemplo n.º 17
0
 /// <summary>
 /// Adds new product to database
 /// </summary>
 /// <param name="product"></param>
 /// <returns></returns>
 public ServiceResponse <Product> CreateProduct(Product product)
 {
     try
     {
         _db.Products.Add(product);
         //Inventory
         var newInventory = new ProductInventory
         {
             Product        = product,
             QuantityOnHand = 0,
             IdealQuantity  = 10,
         };
         _db.ProductInventories.Add(newInventory);
         _db.SaveChanges();
         return(new ServiceResponse <Product>
         {
             Data = product,
             Time = DateTime.UtcNow,
             Message = "Saved new product",
             IsSuccess = true
         });
     }
     catch (Exception e)
     {
         return(new ServiceResponse <Product>
         {
             Data = product,
             Time = DateTime.UtcNow,
             Message = e.StackTrace,
             IsSuccess = false
         });
     }
 }
Ejemplo n.º 18
0
        public ServiceResponse <data.models.Customer> CreateCustomerAndReturnResponse(data.models.Customer customer)
        {
            try {
                _db.Customers.Add(customer);
                _db.SaveChanges();

                return(ServiceResponse <data.models.Customer> .Successed(customer, "Customer created"));
            } catch (Exception e) {
                return(ServiceResponse <data.models.Customer> .Failed(customer, e.Message));
            }
        }
Ejemplo n.º 19
0
        public void CreateSnapshot(ProductInventory inventory)
        {
            var snapshot = new ProductInventorySnapshot {
                SnapshotTime   = DateTime.UtcNow,
                Product        = inventory.Product,
                QuantityOnHand = inventory.QuantityOnHand
            };

            // z automatu doda do dobrej tabeli poniewaz zna typ
            _db.Add(snapshot);
            _db.SaveChanges(); // komentarz
        }
Ejemplo n.º 20
0
        private void CreateSnapshot(ProductInventory inventory)
        {
            var now = DateTime.UtcNow;

            var snapshot = new ProductInventorySnapshot
            {
                SnapshotTime   = now,
                Product        = inventory.Product,
                QuantityOnHand = inventory.QuantityOnHand,
            };

            context.Add(snapshot);
            context.SaveChanges();
        }
Ejemplo n.º 21
0
        public ServiceResponse <Data.Model.Product> ArchiveProduct(int id)
        {
            try
            {
                var product = dbContext.Products.Find(id);
                product.IsArchived = true;
                dbContext.SaveChanges();

                return(new ServiceResponse <Data.Model.Product>
                {
                    Data = product,
                    Time = DateTime.UtcNow,
                    Message = "Archiver Product",
                    isSuccess = true,
                });
            }
            catch (System.Exception e)
            {
                return(new ServiceResponse <Data.Model.Product>
                {
                    Data = null,
                    Time = DateTime.UtcNow,
                    Message = e.StackTrace,
                    isSuccess = false,
                });
            }
        }
Ejemplo n.º 22
0
 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 create Snapshot");
             _logger.LogError(e.StackTrace);
         }
         _db.SaveChanges();
         return(new ServiceResponse <ProductInventory> {
             IsSuccess = true,
             Message = $"Poduct {id} inventory adjusted",
             Time = DateTime.UtcNow,
             Data = inventory
         });
     }catch (Exception e)
     {
         return(new ServiceResponse <ProductInventory>
         {
             IsSuccess = false,
             Message = $"error updating Product Inventory Quantity On Hand ",
             Time = DateTime.UtcNow,
             Data = null
         });
     }
 }
Ejemplo n.º 23
0
        public ServiceResponse <bool> CreateProductAndReturnResponseAsBool(data.models.Product product)
        {
            try {
                _db.Products.Add(product);

                data.models.ProductInventory NewInventory = new data.models.ProductInventory {
                    Product        = product,
                    quantityOnHand = 0,
                    idealQuantity  = 10
                };

                _db.ProductInventories.Add(NewInventory);
                _db.SaveChanges();

                return(ServiceResponse <bool> .Successed(true, "Product created"));
            } catch (Exception e) {
                return(ServiceResponse <bool> .Failed(false, e.StackTrace));
            }
        }
Ejemplo n.º 24
0
        /// <summary>
        /// Adjust product inventory by product id
        /// </summary>
        /// <param name="id"></param>
        /// <param name="adjustment"></param>
        /// <returns></returns>
        public ServiceResponse <ProductInventory> UpdateUnitsAvailable(int id, int adjustment)
        {
            var now = DateTime.UtcNow;

            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 {e.Message}");
                }

                _db.SaveChanges();

                return(new ServiceResponse <ProductInventory>
                {
                    IsSuccess = true,
                    Data = inventory,
                    Message = $"Product {id} inventory adjusted",
                    Time = now,
                });
            }
            catch (Exception e)
            {
                return(new ServiceResponse <ProductInventory>
                {
                    IsSuccess = true,
                    Data = null,
                    Message = e.Message,
                    Time = now,
                });
            }
        }
Ejemplo n.º 25
0
 public ServiceResponse <bool> GenerateOpenOrder(SalesOrder order)
 {
     logger.LogInformation("Generating new order");
     Parallel.ForEach(order.SalesOrderItems.ToArray(), item =>
     {
         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);
         var response = db.SaveChanges();
         if (response >= 1)
         {
             return(new ServiceResponse <bool>
             {
                 IsSuccess = true,
                 Message = "Open order created.",
                 Time = now,
                 Data = true
             });
         }
         return(new ServiceResponse <bool>
         {
             IsSuccess = false,
             Message = "Error in saving open order record created.",
             Time = now,
             Data = false
         });
     }
     catch (Exception ex)
     {
         return(new ServiceResponse <bool>
         {
             IsSuccess = false,
             Message = ex.StackTrace,
             Time = now,
             Data = false
         });
     }
 }
Ejemplo n.º 26
0
        /// <summary>
        /// Creates an open SalesOrder
        /// </summary>
        /// <param name="order"></param>
        /// <returns></returns>
        public ServiceResponse <bool> GenerateOpenOrder(SalesOrder order)
        {
            var now = DateTime.UtcNow;

            _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);
            }
            // why assign values to Product/InvID properties of order if order is passed?
            //it its uncomplete vm, it would make sense.

            try
            {
                _db.SalesOrders.Add(order);
                _db.SaveChanges();

                return(new ServiceResponse <bool>
                {
                    IsSuccess = true,
                    Data = true,
                    Message = "Open order created",
                    Time = now
                });
            }
            catch (Exception e)
            {
                return(new ServiceResponse <bool>
                {
                    IsSuccess = false,
                    Data = false,
                    Message = e.StackTrace,
                    Time = now
                });
            }
        }
Ejemplo n.º 27
0
        /// <summary>
        /// Archives a product by setting a flag on product IsArchived to true.
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public ServiceResponse <Product> ArchiveProduct(int id)
        {
            var productToArchive = _db.Products.Find(id);

            try
            {
                if (productToArchive == null)
                {
                    return(new ServiceResponse <Product>
                    {
                        Data = null,
                        IsSuccess = false,
                        Message = "Product not found on database",
                        Time = DateTime.UtcNow
                    });
                }
                productToArchive.IsArchived = true;
                _db.SaveChanges();

                return(new ServiceResponse <Product>
                {
                    Data = productToArchive,
                    IsSuccess = true,
                    Message = "Product Archived successfully",
                    Time = DateTime.UtcNow
                });
            }
            catch (Exception ex)
            {
                return(new ServiceResponse <Product>
                {
                    Data = productToArchive,
                    IsSuccess = true,
                    Message = ex.StackTrace.ToString(),
                    Time = DateTime.UtcNow
                });
            }
        }
Ejemplo n.º 28
0
        public ServiceResponse <bool> GenerateInvoiceForOrder(SalesOrder order)
        {
            logger.LogInformation($"generating new order");

            foreach (var item in order.SalesOrderItem)
            {
                item.Product  = productService.GetProductById(item.Product.Id);
                item.Quantity = item.Quantity;

                var inventoryId = inventoryService.GetByProductId(item.Product.Id);

                inventoryService.UpdateUnitsAvalible(inventoryId.Id, -item.Quantity);
            }

            try
            {
                context.SalesOrders.Add(order);
                context.SaveChanges();

                return(new ServiceResponse <bool>
                {
                    isSuccess = true,
                    Data = true,
                    Message = "Open order created",
                    Time = DateTime.UtcNow,
                });
            }
            catch (System.Exception e)
            {
                return(new ServiceResponse <bool>
                {
                    isSuccess = false,
                    Data = false,
                    Message = e.StackTrace,
                    Time = DateTime.UtcNow,
                });
            }
        }
Ejemplo n.º 29
0
        /// <summary>
        /// Updates number of units available of the provided product id
        /// </summary>
        /// <param name="id"></param>
        /// <param name="adjustment"></param>
        /// <returns></returns>
        public ServiceResponse <ProductInventory> UpdateUnitsAvailable(int id, int adjustment)
        {
            try
            {
                var inventory = db.ProductInventories
                                .Include(p => p.Product)
                                .First(inv => inv.Product.Id == id);
                inventory.QuantityOnHand += adjustment;

                try
                {
                    CreateSnapshot(inventory);
                }
                catch (Exception ex)
                {
                    logger.LogError("Error creating inventory snapshots");
                    logger.LogError(ex.StackTrace);
                }

                var response = db.SaveChanges();

                if (response >= 1)
                {
                    return(new ServiceResponse <ProductInventory>
                    {
                        IsSuccess = true,
                        Message = $"Product {id} Updated",
                        Time = now,
                        Data = inventory
                    });
                }
                return(new ServiceResponse <ProductInventory>
                {
                    IsSuccess = false,
                    Message = $"There is an issue in updating product with id = {id}",
                    Time = now,
                    Data = null
                });
            }
            catch (Exception ex)
            {
                return(new ServiceResponse <ProductInventory>
                {
                    IsSuccess = false,
                    Message = ex.StackTrace,
                    Time = now,
                    Data = null
                });
            }
        }
Ejemplo n.º 30
0
        public ServiceResponse <bool> GenerateOpenOrder(SalesOrder order)
        {
            var now = DateTime.UtcNow;

            try
            {
                foreach (var item in order.SalesOrderItems)
                {
                    item.Product = _productService.GetProductById(item.Product.Id);

                    var inventoryId = _inventoryService.GetProductById(item.Product.Id).Id;

                    _inventoryService.UpdateUnitsAvailable(inventoryId, -item.Quantity);
                }

                _db.SalesOrders.Add(order);
                _db.SaveChanges();

                return(new ServiceResponse <bool>
                {
                    IsSuccess = true,
                    Data = true,
                    Message = "Generated Invoice",
                    Time = now
                });
            }
            catch (Exception ex)
            {
                return(new ServiceResponse <bool>
                {
                    IsSuccess = true,
                    Data = true,
                    Message = $"Invoice generation failed {ex.InnerException.Message}",
                    Time = now
                });
            }
        }