/// <summary> /// get All Annotations /// </summary> /// <returns></returns> public List <Annotation> GetAnnotations() { var dlBooks = publicationAccess.GetAllDlBooks(GlobalAccess.Instance.UserCredential); var annotations = annotationAccess.GetAnnotations(GlobalAccess.Instance.Email, GlobalAccess.Instance.ServiceCode); return(AnnotationFactory.CreateAnnotations(annotations, this.tagDomainService.Tags, dlBooks)); }
public void RequestAllDlBooksSync() { if (GlobalAccess.Instance.UserCredential != null) { var dlBooks = publicationAccess.GetAllDlBooks(GlobalAccess.Instance.UserCredential); IAnnotationSyncTask task = new AnnotationSyncTask(dlBooks); RequestAnnotationSync(task); } }
/// <summary> /// get remote publications in online mode /// </summary> /// <returns>Task<OnlinePublicationResult></returns> public async Task <OnlinePublicationResult> GetPublicationOnline() { OnlinePublicationResult onlinePublicationResult = new OnlinePublicationResult { RequestStatus = RequestStatusEnum.Failure }; //onlinePublicationResult.Publications = GetPublicationOffline(); //onlinePublicationResult.RequestStatus = RequestStatusEnum.Success; //return onlinePublicationResult; try { if (Interlocked.Increment(ref GetPublicationOnlineFlag) == 1) { var pingSuccess = await connectionMonitor.PingService(null); if (!pingSuccess) { return(onlinePublicationResult); } // await publicationDomainService.RemoveDlBooksFromServer(GlobalAccess.Instance.UserCredential); var onlineDlBooks = await publicationDomainService.GetOnlineDlBooks(GlobalAccess.Instance.Email); var localDlBooks = publicationAccess.GetAllDlBooks(GlobalAccess.Instance.UserCredential); var exceptDlBooks = GetLocalDlBooksExceptOnlineDlBooks(onlineDlBooks, localDlBooks); var additionalDlBooks = publicationDomainService.GetAdditionalDlBooks(exceptDlBooks); onlinePublicationResult.Publications = additionalDlBooks.ToPublications(); var toBeDeletedDlBooks = exceptDlBooks.Except(additionalDlBooks, new DlBookEqualityComparer()); await publicationDomainService.DeleteDlBooksByEreader(toBeDeletedDlBooks); if (toBeDeletedDlBooks != null && toBeDeletedDlBooks.Count() > 0) { if (RecenthistoryChanged != null) { RecenthistoryChanged(); } } bool noReturnFromServer = (onlineDlBooks == null || onlineDlBooks.Count == 0); if (noReturnFromServer) {//user did not Assign dlbook onlinePublicationResult.RequestStatus = RequestStatusEnum.Success; return(onlinePublicationResult); } var updatedPublications = publicationDomainService.UpdateLocalDlBooks(onlineDlBooks, localDlBooks); onlinePublicationResult.Publications.AddRange(updatedPublications); onlinePublicationResult.Publications = onlinePublicationResult.Publications .OrderBy(p => p.OrderBy) .ThenByDescending(p => p.RowId) .ToList(); onlinePublicationResult.RequestStatus = RequestStatusEnum.Success; await DomainEvents.Publish(new GetPublicationOnlineEvent()); } } catch (Exception ex) { Logger.Log("GetPublicationOnline" + ex.ToString()); } finally { Interlocked.Decrement(ref GetPublicationOnlineFlag); } return(onlinePublicationResult); }