Exemplo n.º 1
0
        public void UpdateTransaction(ShopTransaction transaction)
        {
            var filter = Builders <Session> .Filter;
            var transactionIdAndSessionIdFilter = filter.Eq(x => x.Guid, _activeSessionId) & filter.ElemMatch(x => x.Transactions, x => x.Guid == transaction.Guid);

            SessionsCollection.UpdateOne(transactionIdAndSessionIdFilter, Builders <Session> .Update.Set(x => x.Transactions[-1], transaction));
        }
Exemplo n.º 2
0
        public void DeleteTransaction(ShopTransaction transaction)
        {
            List <ShopTransaction> transactions = GetTransactions();

            transactions.RemoveAll(x => x.Guid == transaction.Guid);
            SaveTransactions(transactions);
        }
Exemplo n.º 3
0
        public void InsertTransaction(ShopTransaction transaction)
        {
            List <ShopTransaction> transactions = GetTransactions();

            transactions.Add(transaction);
            SaveTransactions(transactions);
        }
Exemplo n.º 4
0
        public void SaveTransaction(ShopTransaction transaction)
        {
            // Try to update
            var          filter = Builders <Session> .Filter;
            var          transactionIdAndSessionIdFilter = filter.Eq(x => x.Guid, _activeSessionId) & filter.ElemMatch(x => x.Transactions, x => x.Guid == transaction.Guid);
            UpdateResult updateResult = SessionsCollection.UpdateOne(transactionIdAndSessionIdFilter, Builders <Session> .Update.Set(x => x.Transactions[-1], transaction));

            // Update failed -> insert
            if (updateResult.ModifiedCount == 0)
            {
                SessionsCollection.FindOneAndUpdate(x => x.Guid == _activeSessionId, Builders <Session> .Update.Push(x => x.Transactions, transaction));
            }
        }
Exemplo n.º 5
0
        public void SaveTransaction(ShopTransaction transaction)
        {
            List <ShopTransaction> transactions = GetTransactions();

            // If transaction already exists -> update
            if (transactions.Any(x => x.Guid == transaction.Guid))
            {
                transactions.RemoveAll(x => x.Guid == transaction.Guid);
                transactions.Add(transaction);
            }
            // Else, insert
            else
            {
                transactions.Add(transaction);
            }
            SaveTransactions(transactions);
        }
Exemplo n.º 6
0
 public void DeleteTransaction(ShopTransaction transaction)
 {
     SessionsCollection.UpdateOne(x => x.Guid == _activeSessionId, Builders <Session> .Update.PullFilter(x => x.Transactions, x => x.Guid == transaction.Guid));
 }
Exemplo n.º 7
0
 // Insert/Update could be replaced with SaveTransaction(ShopTransaction transaction)
 public void InsertTransaction(ShopTransaction transaction)
 {
     SessionsCollection.FindOneAndUpdate(x => x.Guid == _activeSessionId, Builders <Session> .Update.Push(x => x.Transactions, transaction));
 }