/// <summary> /// delete user bookmark /// /// </summary> /// <param name="bookmarkId"></param> /// <param name="userId">to make sure a user can not delete another user's bookmarks</param> /// <returns></returns> public async Task <RServiceResult <bool> > DeleteGanjoorBookmark(Guid bookmarkId, Guid userId) { GanjoorUserBookmark bookmark = await _context.GanjoorUserBookmarks.Where(b => b.Id == bookmarkId && b.UserId == userId).SingleOrDefaultAsync(); if (bookmark == null) { return(new RServiceResult <bool>(false, "bookmark not found")); } _context.GanjoorUserBookmarks.Remove(bookmark); await _context.SaveChangesAsync(); return(new RServiceResult <bool>(true)); }
/// <summary> /// Bookmark Verse /// </summary> /// <param name="poemId"></param> /// <param name="coupletIndex"></param> /// <param name="userId"></param> /// <returns></returns> public async Task <RServiceResult <GanjoorUserBookmark> > BookmarkVerse(int poemId, int coupletIndex, Guid userId) { if ((await _context.GanjoorUserBookmarks.Where(b => b.UserId == userId && b.PoemId == poemId && b.CoupletIndex == coupletIndex).SingleOrDefaultAsync()) != null) { return(new RServiceResult <GanjoorUserBookmark>(null, "The couplet is already bookmarkeded.")); } GanjoorUserBookmark bookmark = new GanjoorUserBookmark() { UserId = userId, PoemId = poemId, DateTime = DateTime.Now, CoupletIndex = coupletIndex }; _context.GanjoorUserBookmarks.Add(bookmark); await _context.SaveChangesAsync(); return(new RServiceResult <GanjoorUserBookmark>(bookmark)); }
/// <summary> /// modify bookmark private note /// </summary> /// <param name="bookmarkId"></param> /// <param name="userId">to make sure a user can not modify another user's bookmarks</param> /// <param name="note"></param> /// <returns></returns> public async Task <RServiceResult <bool> > ModifyBookmarkPrivateNoteAsync(Guid bookmarkId, Guid userId, string note) { try { GanjoorUserBookmark bookmark = await _context.GanjoorUserBookmarks.Where(b => b.Id == bookmarkId && b.UserId == userId).SingleOrDefaultAsync(); if (bookmark == null) { return(new RServiceResult <bool>(false, "bookmark not found")); } bookmark.PrivateNote = note; _context.Update(bookmark); await _context.SaveChangesAsync(); return(new RServiceResult <bool>(true)); } catch (Exception exp) { return(new RServiceResult <bool>(false, exp.ToString())); } }