public static void Run() { // ExStart:1 PdfApi pdfApi = new PdfApi(Common.APP_KEY, Common.APP_SID, Common.BASEPATH); StorageApi storageApi = new StorageApi(Common.APP_KEY, Common.APP_SID, Common.BASEPATH); String fileName = "Sample-Bookmark.pdf"; String storage = ""; String folder = ""; try { // Upload source file to aspose cloud storage storageApi.PutCreate(fileName, "", "", System.IO.File.ReadAllBytes(Common.GetDataDir() + fileName)); // Invoke Aspose.PDF Cloud SDK API to get all bookmarks from pdf BookmarksResponse apiResponse = pdfApi.GetDocumentBookmarks(fileName, storage, folder); if (apiResponse != null && apiResponse.Status.Equals("OK")) { Com.Aspose.PDF.Model.Bookmarks bookmarks = apiResponse.Bookmarks; Console.WriteLine("Get all Bookmarks from a PDF,Done!"); Console.ReadKey(); } } catch (Exception ex) { System.Diagnostics.Debug.WriteLine("error:" + ex.Message + "\n" + ex.StackTrace); } // ExEnd:1 }
public static void Run() { // ExStart:1 WordsApi wordsApi = new WordsApi(Common.APP_KEY, Common.APP_SID, Common.BASEPATH); StorageApi storageApi = new StorageApi(Common.APP_KEY, Common.APP_SID, Common.BASEPATH); String fileName = "SampleWordDocument.docx"; String storage = null; String folder = null; try { // Upload the file storageApi.PutCreate(fileName, "", storage, System.IO.File.ReadAllBytes(Common.GetDataDir() + fileName)); // Invoke Aspose.Words Cloud SDK API to get bookmarks from document BookmarksResponse apiResponse = wordsApi.GetDocumentBookmarks(fileName, storage, folder); if (apiResponse != null && apiResponse.Status.Equals("OK")) { foreach (Com.Aspose.Words.Model.Bookmark bookmark in apiResponse.Bookmarks.BookmarkList) { Console.WriteLine("Name: " + bookmark.Name + " Text: " + bookmark.Text + " link: " + bookmark.link.Href); } Console.ReadKey(); } } catch (Exception ex) { System.Diagnostics.Debug.WriteLine("error:" + ex.Message + "\n" + ex.StackTrace); } // ExEnd:1 }
public BookmarksResponse Read(long ID) { BookmarksResponse response = new BookmarksResponse(); try { using (IDbConnection conn = GetConnection()) { response.data = conn.Get <Bookmarks>(ID); if (response.data != null) { response.Status = true; response.Description = "Successful"; } else { response.Status = false; response.Description = "No data"; } } } catch (Exception ex) { response.Status = false; response.Description = ex.Message; } return(response); }
public void Pdf_Bookmarks_Tests() { try { BookmarksResponse bookmarksResponse = pdfService.Bookmarks.ReadAllDocumentBookmarks("pdf-sample.pdf", Utils.CloudStorage_Input_Folder); BookmarkResponse bookmarkResponse = pdfService.Bookmarks.ReadDocumentBookmark("pdf-sample.pdf", 1, Utils.CloudStorage_Input_Folder); } catch (Exception ex) { Assert.Fail(ex.Message); } }
//GET api/username/Bookmarks public BookmarksResponse Get(string username, string tag = null, string dt = null, int?start = 1, int?length = 2) { BookmarksResponse response = new BookmarksResponse(); response.Start = start.Value; response.Length = length.Value; string absolute = RequestContext.Url.Request.RequestUri.AbsoluteUri; string nextUrl = absolute.Split('?')[0]; nextUrl += "?start=" + (start + length); nextUrl += "&length=" + length; var query = (from b in _dbContext.Bookmarks join u in _dbContext.Users on b.UserId equals u.Id where u.UserName == username select b); if (tag != null) { nextUrl += "&tag=" + tag; query = query.Where(x => x.Tags.Exists(y => y.Name == tag)); } if (dt != null) { nextUrl += "&dt=" + dt; DateTime date = DateTime.Parse(dt); query = query.Where(x => DbFunctions.TruncateTime(x.Time).Value == date.Date); } query = query.OrderBy(x => x.BookmarkId); if (start > 1) { query = query.Skip(start.Value - 1); } query = query.Take(length.Value); response.Bookmarks = query.ToList(); if (response.Bookmarks.Count >= length) { response.Next = nextUrl; } foreach (var bookmark in response.Bookmarks) { bookmark.Href = absolute.Split('?')[0] + "/" + bookmark.BookmarkId; } return(response); }
private async Task SaveBookmarks( string artId, BookmarksResponse request, CancellationToken cancellationToken ) { var data = CreateXmlFromRequest(request); bool needNewLock = false; while( true ) { try { if (needNewLock || string.IsNullOrEmpty(_lock)) { await GetBookmarksByDocumentId(artId, cancellationToken); } var parameters = new Dictionary<string, object> { {"data", data}, {"uuid", artId}, {"lock_id", _lock}, {"group", "0,1"}, }; await _client.AddBookmark(parameters, cancellationToken); } catch (CatalitBookmarksException e) { if ((e.ErrorCode == 4 || e.ErrorCode == 1) && !needNewLock) { needNewLock = true; continue; } throw; } catch (Exception ex) { } break; } XCollection<Bookmark> allbookmarks = _dataCacheService.GetItem<XCollection<Bookmark>>(BookmarksCacheItemName); allbookmarks = allbookmarks ?? new XCollection<Bookmark>(); var existbookmarks = allbookmarks.Derive(art => art.ArtId == artId); var newbookmarks = request.Bookmarks.Derive(art => art.ArtId == artId); if (existbookmarks != null && newbookmarks != null) { if (existbookmarks.Count != 0) { for (int i = existbookmarks.Count - 1; i >= 0; i--) { if (newbookmarks.FirstOrDefault(x => x.Id == existbookmarks[i].Id) == null) { allbookmarks.Remove(existbookmarks[i]); } } } } foreach (var bookmark in request.Bookmarks) { if (allbookmarks.FirstOrDefault(x => x.Id == bookmark.Id) == null) { allbookmarks.Add(bookmark); } } _dataCacheService.PutItem(allbookmarks, BookmarksCacheItemName, cancellationToken); }
private string CreateXmlFromRequest(BookmarksResponse request) { request.LockId = _lock; //foreach (var bookmark in request.Bookmarks) //{ // bookmark.NoteText = new Note {Text = "12345"}; // bookmark.Percent = null; //} var serializer = new XmlSerializer(typeof(BookmarksResponse)); var namespaces = new XmlSerializerNamespaces(); namespaces.Add("", "http://www.gribuser.ru/xml/fictionbook/2.0/markup"); namespaces.Add("fb", "http://www.gribuser.ru/xml/fictionbook/2.0"); string data; using (var ms = new MemoryStream()) { var xmlWriter = XmlWriter.Create(ms, new XmlWriterSettings { OmitXmlDeclaration = true, Indent = true, Encoding = Encoding.UTF8 }); serializer.Serialize(xmlWriter, request, namespaces); ms.Seek(0, SeekOrigin.Begin); var sr = new StreamReader(ms); data = sr.ReadToEnd(); } //XDocument document = new XDocument(); //using (var stream = new MemoryStream(Encoding.UTF8.GetBytes(data))) //{ // using (var reader = XmlReader.Create(stream)) // { // reader.MoveToContent(); // document.Add(XElement.ReadFrom(reader)); // } //} //data = document.ToString(SaveOptions.DisableFormatting); data = data.Replace("\r\n", string.Empty); // data = EscapeUnicode(data); return data; }
public async Task AddBookmark( Bookmark bookmark, CancellationToken cancellationToken ) { if (bookmark != null) { XCollection<Bookmark> bookmarks = await GetBookmarksByDocumentId( bookmark.ArtId, cancellationToken ) ?? new XCollection<Bookmark>(); if (bookmarks.Count == 0) bookmarks = await GetLocalBookmarksByDocumentId(bookmark.ArtId, cancellationToken) ?? bookmarks; if( bookmark.Group == "0" ) { bookmarks.RemoveAll( x => x.Group == "0" ); } bookmarks.RemoveAll( x => x.Selection == bookmark.Selection && x.Group == bookmark.Group ); bookmarks.Insert( 0, bookmark ); BookmarksResponse request = new BookmarksResponse(); request.Bookmarks = bookmarks; await SaveBookmarks( bookmark.ArtId, request, cancellationToken ); } }
public async Task<XCollection<Bookmark>> RemoveBookmarks( XCollection<Bookmark> bookmarks, CancellationToken cancellationToken ) { if( bookmarks != null && bookmarks.Count > 0 ) { string id = bookmarks[0].ArtId; XCollection<Bookmark> existbookmarks = await GetBookmarksByDocumentId( id, cancellationToken ) ?? (await GetLocalBookmarksByDocumentId(id, cancellationToken ) ?? new XCollection<Bookmark>()); if( existbookmarks.Count > 0 ) { for( int i = existbookmarks.Count - 1; i >= 0; i-- ) { if( bookmarks.Any( x => x.Id == existbookmarks[i].Id ) ) { existbookmarks.RemoveAt( i ); } } } BookmarksResponse request = new BookmarksResponse(); request.Bookmarks = existbookmarks; await SaveBookmarks( id, request, cancellationToken ); return request.Bookmarks; } return null; }