public IObservable <Unit> AddLibrary(string libraryId) { return(Observable.Return(libraryId) .SelectMany(id => { if (String.IsNullOrEmpty(id)) { return Observable.Throw <LibraryInfo>(new ArgumentException(FileLanguage.Error_LibraryIdEmpty)); } if (LoggedUser.Libraries.Count(library => library.ServerId == libraryId) != 0) { return Observable.Throw <LibraryInfo>(new ArgumentException(FileLanguage.LIBRARY_ALREADY_EXISTS)); } return Transport.GetLibraryInfo(id); }) .ObserveOnDispatcher() .Do(libInfo => { Library library = new Library(libInfo.Id, libInfo.Title, libInfo.Version); StatisticsManager.LogAddLibrary(library); LoggedUser.Libraries.Add(library); }) .Select(_ => new Unit())); }
public AddingToQueueResult EnqueueMediaItem(MediaItemsListModelItem mediaItem, bool immediate, bool forceNow = false) { if (LoggedUser.Downloads.Count(queuedDownload => queuedDownload.Id == mediaItem.Id) == 0) { QueuedDownload.DownloadState initialState = App.Engine.LoggedUser.Settings.AutomaticDownloads ? QueuedDownload.DownloadState.Queued : (immediate ? QueuedDownload.DownloadState.Queued : QueuedDownload.DownloadState.Paused); QueuedDownload queuedDownload = new QueuedDownload(mediaItem) { State = initialState }; using (IsolatedStorageFile isf = IsolatedStorageFile.GetUserStoreForApplication()) { if (isf.FileExists(Utils.MediaFilePath(LoggedUser, queuedDownload))) { return(AddingToQueueResult.ItemAlreadyDownloaded); } } StatisticsManager.LogDownloadAdd(queuedDownload); LoggedUser.Downloads.Add(queuedDownload); _downloadEnqueuedEvent.OnNext(queuedDownload); if (initialState != QueuedDownload.DownloadState.Stopped) { DownloadManager.StartDownload(queuedDownload, false, forceNow); } return(AddingToQueueResult.ItemAddedToQueue); } else if (immediate) { QueuedDownload queuedDownload = (from download in LoggedUser.Downloads where download.Id == mediaItem.Id select download).First(); queuedDownload.State = QueuedDownload.DownloadState.Queued; DownloadManager.StartDownload(queuedDownload); return(AddingToQueueResult.DownloadItemStarted); } else { return(AddingToQueueResult.ItemAlreadyDownloaded); } }
private void UploadStatusUpdated( StatisticsManager.StatisticsUploadStatus result ) { switch( result ) { case StatisticsManager.StatisticsUploadStatus.Success: case StatisticsManager.StatisticsUploadStatus.Error: RefreshData(); break; case StatisticsManager.StatisticsUploadStatus.NothingToUpload: case StatisticsManager.StatisticsUploadStatus.UploadStarted: default: break; } }
public void SavePersistantData() { StatisticsManager.Save(true); }
private void UploadStatistics(object sender, EventArgs args) { StatisticsManager.AutomaticallyUpdateStatistic(); }