示例#1
0
        public async Task UpdateAsync(Payment payment)
        {
            var paymentMongo = this.typeMapper.Map <PaymentMongo>(payment);

            var options = new FindOneAndReplaceOptions <PaymentMongo>
            {
                IsUpsert = true
            };

            var paymentFilter = EventFiltersDefinition <PaymentMongo> .ApplyPaymentIDFilter(paymentMongo.PaymentID);

            paymentMongo.DateModified = DateTime.Now;
            await this.paymentEvents.FindOneAndReplaceAsync(paymentFilter, paymentMongo, options).ConfigureAwait(false);
        }
示例#2
0
        public async Task <IEnumerable <Payment> > GetAllAsync(FindPaymentQuery findPaymentQuery)
        {
            var paymentFilter = EventFiltersDefinition <PaymentMongo> .ApplyPaymentIDFilter(findPaymentQuery.PaymentID);

            var merchantFilter = EventFiltersDefinition <PaymentMongo> .ApplyMerchantIDFilter(findPaymentQuery.MerchantID);

            var shopperFilter = EventFiltersDefinition <PaymentMongo> .ApplyShooperIDFilter(findPaymentQuery.ShopperID);

            var options = new FindOptions <PaymentMongo>
            {
                Sort = Builders <PaymentMongo> .Sort.Descending(p => p.DateCreated)
            };

            var payments = await this.paymentEvents
                           .FindAsync(paymentFilter& merchantFilter& shopperFilter, options)
                           .Result.ToListAsync()
                           .ConfigureAwait(false);

            return(this.typeMapper.Map <IEnumerable <Payment> >(payments));
        }