Example #1
0
        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));
        }
Example #2
0
        public override void Delete(BookToBeReviewed instance)
        {
            if (instance == null || string.IsNullOrEmpty(instance.File))
            {
                throw new ArgumentNullException();
            }

            BooksToReviewList.DeleteOne(x => x.File == instance.File);
        }
Example #3
0
        public override void Put(BookToBeReviewed instance)
        {
            lock (_object)
            {
                if (instance == null || string.IsNullOrEmpty(instance.File))
                {
                    throw new ArgumentNullException();
                }

                BooksToReviewList.InsertOne(instance);
            }
        }
Example #4
0
 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>());
 }
Example #5
0
        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>());
            }
        }
Example #6
0
        public override List <BookToBeReviewed> Get()
        {
            FilterDefinition <BookToBeReviewed> filter = Builders <BookToBeReviewed> .Filter.Where(x => true);

            return(BooksToReviewList.Find <BookToBeReviewed>(filter).ToList <BookToBeReviewed>());
        }
Example #7
0
        public override long Count()
        {
            FilterDefinition <BookToBeReviewed> filter = Builders <BookToBeReviewed> .Filter.Where(x => true);

            return(BooksToReviewList.CountDocuments(filter));
        }