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); }
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)); }