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