Beispiel #1
0
        /// <summary>
        ///     Updates a purchase
        /// </summary>
        /// <param name="purchase"></param>
        /// <param name="supplierId"></param>
        /// <param name="amount"></param>
        /// <param name="isSettled"></param>
        /// <param name="note"></param>
        /// <param name="purchaseItems"></param>
        public void UpdatePurchase(Purchase purchase, uint?supplierId = null, decimal?amount = null,
                                   bool?isSettled = null, string note = null, IEnumerable <PurchaseItem> purchaseItems = null)
        {
            using (var scope = new TransactionScope())
            {
                using (var connection = Connector.GetConnection())
                {
                    if (purchase.Id == null)
                    {
                        throw new ArgumentNullException(nameof(purchase.Id), "Purchase Id is null");
                    }

                    var purchaseDal = new PurchaseDal(connection);
                    purchaseDal.Update(purchase.Id.Value, supplierId, amount, isSettled, note);

                    var purchaseItemsList = purchaseItems?.ToList();
                    if (purchaseItemsList?.Any() == true)
                    {
                        var purchaseItemDal = new PurchaseItemDal(connection);
                        purchaseItemDal.Delete(purchase.Id.Value);
                        purchaseItemDal.InsertMultiple(purchase.Id.Value, purchaseItemsList);
                    }
                }
                scope.Complete();
            }
        }
Beispiel #2
0
        /// <summary>
        ///     Update a set of purchases
        /// </summary>
        /// <param name="purchases"></param>
        /// <param name="isSettled"></param>
        public void UpdatePurchaseMultiple(IEnumerable <Purchase> purchases, bool isSettled)
        {
            var purchasesList = purchases.ToList();

            if (purchasesList.Any(p => p.Id == null))
            {
                throw new ArgumentNullException(nameof(purchasesList), "Some Purchases have null Id");
            }

            using (var scope = new TransactionScope())
            {
                using (var connection = Connector.GetConnection())
                {
                    var purchaseDal = new PurchaseDal(connection);
                    foreach (var purchase in purchasesList)
                    {
                        purchaseDal.Update(purchase.Id.GetValueOrDefault(), isSettled: isSettled);
                    }
                }
                scope.Complete();
            }
        }