Ejemplo n.º 1
0
        public async Task <GenricResponse> MarkRead(UserBookRequest request)
        {
            GenricResponse response   = new GenricResponse();
            MongoClient    dbClient   = new MongoClient(Config.ConnectionString);
            var            database   = dbClient.GetDatabase(Config.Database);
            var            collection = database.GetCollection <UserBooks>(Config.UserBooks);
            var            userbook   = (await collection.FindAsync(doc => doc.UserId == request.UserId)).FirstOrDefault();

            if (userbook == null)
            {
                response.Message = "User not found";
            }
            else
            {
                if (userbook.Books.Any(x => x.BookId == request.BookId))
                {
                    var book = userbook.Books.FirstOrDefault(x => x.BookId == request.BookId);
                    book.IsRead = true;
                    await collection.ReplaceOneAsync(doc => doc.Id == userbook.Id, userbook);

                    response.IsSuccesful = true;
                }
                else
                {
                    response.Message = "Book not found";
                }
            }
            return(response);
        }
 public async Task <ActionResult <GenricResponse> > MarkRead(UserBookRequest request)
 {
     if (!ModelState.IsValid)
     {
         return(BadRequest(ModelState));
     }
     return(await InvokeAsync(() => _user.MarkRead(request), "UserController:AddToRead"));
 }
Ejemplo n.º 3
0
        public async Task <GenricResponse> AddToRead(UserBookRequest request)
        {
            GenricResponse response   = new GenricResponse();
            MongoClient    dbClient   = new MongoClient(Config.ConnectionString);
            var            database   = dbClient.GetDatabase(Config.Database);
            var            collection = database.GetCollection <UserBooks>(Config.UserBooks);
            var            userbook   = (await collection.FindAsync(doc => doc.UserId == request.UserId)).FirstOrDefault();

            if (userbook == null)
            {
                userbook = new UserBooks()
                {
                    Id     = Guid.NewGuid(),
                    UserId = request.UserId
                };
                userbook.Books.Add(new UserBook()
                {
                    BookId = request.BookId
                });

                await collection.InsertOneAsync(userbook);
            }
            else
            {
                if (!userbook.Books.Any(x => x.BookId == request.BookId))
                {
                    userbook.Books.Add(new UserBook()
                    {
                        BookId = request.BookId
                    });

                    await collection.ReplaceOneAsync(doc => doc.Id == userbook.Id, userbook);
                }
                {
                    response.Message = "Book is already added";
                    return(response);
                }
            }

            response.IsSuccesful = true;
            return(response);
        }