/// <summary>
        ///
        /// </summary>
        /// <param name="orderInformation"></param>
        /// <returns></returns>
        public Response Insert(Order orderInformation)
        {
            try
            {
                if (orderInformation == null)
                {
                    return(Response.InvalidArguments);
                }

                var bookInformation = LibrettoDatabase.BookIntegration.Lookup(orderInformation.BookId);

                if (bookInformation == null)
                {
                    return(Response.NotFound);
                }

                orderInformation.Timestamp = DateTime.Now;

                if (orderInformation.Quantity > bookInformation.Stock)
                {
                    orderInformation.Status          = Status.Waiting;
                    orderInformation.StatusTimestamp = orderInformation.Timestamp;
                }
                else
                {
                    orderInformation.Status          = Status.Dispatched;
                    orderInformation.StatusTimestamp = DateTime.Now.AddDays(1);
                }

                _context.Orders.Add(orderInformation);
                _context.SaveChanges();

                if (orderInformation.Status == Status.Waiting)
                {
                    LibrettoHost.WarehouseService.InsertOrder(WarehouseOrder.FromOrder(orderInformation));
                }
                else
                {
                    LibrettoDatabase.BookIntegration.UpdateStock(orderInformation.BookId, -orderInformation.Quantity);
                }

                StoreService.NotifyRegisterTransaction(orderInformation);

                return(EmailClient.Instance.NotifyInsert(orderInformation));
            }
            catch
            {
                return(Response.DatabaseError);
            }
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="bookInformation"></param>
        /// <returns></returns>
        public Response Insert(Book bookInformation)
        {
            try
            {
                if (bookInformation == null)
                {
                    return(Response.InvalidArguments);
                }

                _context.Books.Add(bookInformation);
                _context.SaveChanges();
            }
            catch
            {
                return(Response.DatabaseError);
            }

            return(Response.Success);
        }
Ejemplo n.º 3
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="purchaseInformation"></param>
        /// <returns></returns>
        public Response Insert(Purchase purchaseInformation)
        {
            try
            {
                if (purchaseInformation == null)
                {
                    return(Response.InvalidArguments);
                }

                purchaseInformation.Timestamp = DateTime.Now;
                _context.Purchases.Add(purchaseInformation);
                _context.SaveChanges();
                StoreService.NotifyRegisterTransaction(purchaseInformation);
                LibrettoHost.InvoiceQueue.Send(Invoice.FromPurchase(purchaseInformation));
            }
            catch
            {
                return(Response.DatabaseError);
            }

            return(LibrettoDatabase.BookIntegration.UpdateStock(purchaseInformation.BookId, -purchaseInformation.Quantity));
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="customerInformation"></param>
        /// <returns></returns>
        public Response Insert(Customer customerInformation)
        {
            try
            {
                if (customerInformation == null)
                {
                    return(Response.InvalidArguments);
                }

                if (string.IsNullOrEmpty(customerInformation.Password) == false)
                {
                    customerInformation.Password = PasswordUtilities.Hash(customerInformation.Password);
                }

                _context.Customers.Add(customerInformation);
                _context.SaveChanges();
            }
            catch
            {
                return(Response.DatabaseError);
            }

            return(Response.Success);
        }