Example #1
0
        public void ProcessTransaction()
        {
            var transactionByCardIDs = _transactionDA.LoadData().Where(x => x.TransactionState == TransactionState.PROCESSING).GroupBy(x => x.LoyaltyCardID);

            foreach (var cardID in transactionByCardIDs)
            {
                var loyaltyCard = _loyaltyCardDataAccess.GetLoyaltyCardByID(cardID.Key);
                var totalSpent  = cardID.Sum(x => (decimal)x.SpentAdjust);
                loyaltyCard.LoyaltyCartTypeId = GetCartTypeByTotalSpent(totalSpent);
                loyaltyCard.TotalSpent        = totalSpent;
                loyaltyCard.ModifiedOn        = DateTime.UtcNow;
                _loyaltyCardDataAccess.UpdateRecord(loyaltyCard);

                Task.Run(() => UpdateDoneTransactionProcess(cardID));
            }
        }