Esempio n. 1
0
        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()));
        }
Esempio n. 2
0
        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;
     }
 }
Esempio n. 4
0
 public void SavePersistantData()
 {
     StatisticsManager.Save(true);
 }
Esempio n. 5
0
 private void UploadStatistics(object sender, EventArgs args)
 {
     StatisticsManager.AutomaticallyUpdateStatistic();
 }