public override BookToBeReviewed Update(BookToBeReviewed instance) { if (instance == null || string.IsNullOrEmpty(instance.File)) { throw new ArgumentNullException(); } FilterDefinition <BookToBeReviewed> filter = Builders <BookToBeReviewed> .Filter.Eq("File", instance.File); UpdateDefinition <BookToBeReviewed> update = null; BookToBeReviewed queryBook = new BookToBeReviewed(instance.File, instance.FailureReason); BookToBeReviewed oldBook = Get(queryBook).First(); update = UpdateValue(instance.File, oldBook.File, "File", update); update = UpdateValue(instance.FailureReason, oldBook.FailureReason, "FailureReason", update); var opts = new FindOneAndUpdateOptions <BookToBeReviewed>() { IsUpsert = true, ReturnDocument = ReturnDocument.After }; return(BooksToReviewList.FindOneAndUpdate <BookToBeReviewed>(filter, update, opts)); }
public override void Delete(BookToBeReviewed instance) { if (instance == null || string.IsNullOrEmpty(instance.File)) { throw new ArgumentNullException(); } BooksToReviewList.DeleteOne(x => x.File == instance.File); }
public override void Put(BookToBeReviewed instance) { lock (_object) { if (instance == null || string.IsNullOrEmpty(instance.File)) { throw new ArgumentNullException(); } BooksToReviewList.InsertOne(instance); } }
public override async Task <IEnumerable <BookToBeReviewed> > BulkAsync(IEnumerable <BookToBeReviewed> instances) { try { await BooksToReviewList.InsertManyAsync(instances, new InsertManyOptions() { IsOrdered = false, BypassDocumentValidation = false }).ConfigureAwait(false); } catch (MongoBulkWriteException <BookToBeReviewed> e) { } return(new List <BookToBeReviewed>()); }
public override List <BookToBeReviewed> Get(BookToBeReviewed instance) { if (instance == null || string.IsNullOrEmpty(instance.File)) { throw new ArgumentNullException(); } FilterDefinition <BookToBeReviewed> filter = Builders <BookToBeReviewed> .Filter.Eq("File", instance.File); try { return(BooksToReviewList.Find <BookToBeReviewed>(filter).ToList <BookToBeReviewed>()); } catch (InvalidOperationException e) { return(new List <BookToBeReviewed>()); } }
public override List <BookToBeReviewed> Get() { FilterDefinition <BookToBeReviewed> filter = Builders <BookToBeReviewed> .Filter.Where(x => true); return(BooksToReviewList.Find <BookToBeReviewed>(filter).ToList <BookToBeReviewed>()); }
public override long Count() { FilterDefinition <BookToBeReviewed> filter = Builders <BookToBeReviewed> .Filter.Where(x => true); return(BooksToReviewList.CountDocuments(filter)); }