Example #1
0
 private void UpdateMediaSyncLog(MediaTable media)
 {
     var task = Task.Run(() =>
     {
         UpdateMediaSyncLogDatabase(media);
     });
 }
        public void GivenAnExhibitOfAVersion(string version)
        {
            switch (version)
            {
            case "3.9":
                _mediaDataModel.EvidencePath = Path.GetFullPath(_settings["3.9_EvidencePath"].Value);
                break;

            case "4.1":
                _mediaDataModel.EvidencePath = Path.GetFullPath(_settings["4.1_EvidencePath"].Value);
                break;

            case "Logical":
                _mediaDataModel.EvidencePath = Path.GetFullPath(_settings["Logical"].Value);
                break;

            default:
                throw new Exception("The version supplied from the feature " + version + " is not expected, and no evidence file for it exist.");
            }

            PrepareDbData();

            _exhibitDatabaseConnectionString =
                EVE.Site.DAL.Config.GetConnectionString(DataStore.Exhibit)
                .Replace(EVE.Site.DAL.Config.ExhibitPlaceholder, _exhibitId.ToString(CultureInfo.InvariantCulture));
            _mediaTable = new MediaTable(_exhibitDatabaseConnectionString);
        }
Example #3
0
 private void UpdateMediaSyncLogDatabase(MediaTable media)
 {
     lock (threadLock)
     {
         media.Dirty = 0;
         mediaSyncLogDb.InsertOrReplace(media);
     }
 }
Example #4
0
        private bool IsAlreadySynced(MediaTable media)
        {
            var mediaList = mediaSyncLogDb.QueryFirstRow <MediaTable>(MEDIA_COLLUMN_QUERY, media.RelativePathName);

            if (mediaList.Count == 0)
            {
                return(false);
            }

            if (mediaList[0].IsAdded == media.IsAdded && mediaList[0].ModifiedTime == media.ModifiedTime)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
        public static void InitialiseTables()
        {
            var distributedConnectionString = EVE.Site.DAL.Config.GetConnectionString(DataStore.Distributed);

            _workTable = new WorkTable(distributedConnectionString);

            _exhibitDatabaseConnectionString =
                EVE.Site.DAL.Config.GetConnectionString(DataStore.Exhibit)
                .Replace(EVE.Site.DAL.Config.ExhibitPlaceholder, _exhibitId.ToString(CultureInfo.InvariantCulture));
            _fileMetadataTable       = new FileMetadataTable(_exhibitDatabaseConnectionString);
            _entityTable             = new EntityTable(_exhibitDatabaseConnectionString);
            _connectionMetadataTable = new ConnectionMetadataTable(_exhibitDatabaseConnectionString);
            _mediaTable      = new MediaTable(_exhibitDatabaseConnectionString);
            _exhibitDatabase = new ExhibitDatabase(_exhibitDatabaseConnectionString);

            var distributedDbConnctionString = EVE.Site.DAL.Config.GetConnectionString(DataStore.Distributed);

            _distributedDatabase = new DistributedDatabase(distributedDbConnctionString);
        }
        public void SearchMedia()
        {
            //Search database for user query

            //Open database connection
            var conn = GetDatabaseConnection();

            conn.Open();
            var command = conn.CreateCommand();

            //Get search string
            string field  = SearchMediaField.TitleOfSelectedItem;
            string search = SearchMediaSearch.StringValue;

            command.CommandText = string.Format("SELECT * FROM media WHERE {0} LIKE '{1}';", field, search);

            //Get IDs of matching results
            SQLiteDataReader reader    = command.ExecuteReader();
            List <string>    recordIDs = new List <string>();

            while (reader.Read())
            {
                string ID = reader.GetString(0);
                recordIDs.Add(ID);
            }
            conn.Close();

            //Get media records and update table
            var DataSource = new MediaTableDataSource();

            foreach (string ID in recordIDs)
            {
                var record = new MediaModel();
                record.Load(conn, ID);
                DataSource.MediaRecords.Add(record);
            }
            MediaTable.DataSource = DataSource;
            MediaTable.Delegate   = new MediaTableDelegate(this, DataSource);
            MediaTable.ReloadData();
        }
Example #7
0
 private async Task RemoveMediaFilesInLocal(Dictionary <long, StorageFolder> deckMediaFolders, MediaTable media, long deckId, string name)
 {
     if (deckMediaFolders.ContainsKey(deckId))
     {
         var file = await deckMediaFolders[deckId].TryGetItemAsync(name) as StorageFile;
         if (file != null)
         {
             await file.DeleteAsync();
         }
     }
 }
Example #8
0
        private async Task DownloadMediaFilesFromSever(Dictionary <long, StorageFolder> deckMediaFolders, string remoteMediaFolderPath, MediaTable media, long deckId, string name)
        {
            var oldFile = await deckMediaFolders[deckId].TryGetItemAsync(name) as StorageFile;

            if (oldFile != null)
            {
                await oldFile.DeleteAsync();
            }

            var newFile = await deckMediaFolders[deckId].CreateFileAsync(name,
                                                                         CreationCollisionOption.ReplaceExisting);
            var remoteFilePath = remoteMediaFolderPath + media.RelativePathName;
            await fullSync.SyncInstance.DownloadItemWithPathAsync(remoteFilePath, newFile, true); //Not found items should not stop syncing
        }
 public void ReloadMediaTable()
 {
     MediaTable.ReloadData();
 }
Example #10
0
        void ReleaseDesignerOutlets()
        {
            if (AddMediaCompletion != null)
            {
                AddMediaCompletion.Dispose();
                AddMediaCompletion = null;
            }

            if (AddMediaCreator != null)
            {
                AddMediaCreator.Dispose();
                AddMediaCreator = null;
            }

            if (AddMediaDate != null)
            {
                AddMediaDate.Dispose();
                AddMediaDate = null;
            }

            if (AddMediaLanguage != null)
            {
                AddMediaLanguage.Dispose();
                AddMediaLanguage = null;
            }

            if (AddMediaMedia != null)
            {
                AddMediaMedia.Dispose();
                AddMediaMedia = null;
            }

            if (AddMediaRating != null)
            {
                AddMediaRating.Dispose();
                AddMediaRating = null;
            }

            if (AddMediaTitle != null)
            {
                AddMediaTitle.Dispose();
                AddMediaTitle = null;
            }

            if (CreatorColumn != null)
            {
                CreatorColumn.Dispose();
                CreatorColumn = null;
            }

            if (DateColumn != null)
            {
                DateColumn.Dispose();
                DateColumn = null;
            }

            if (StatusColumn != null)
            {
                StatusColumn.Dispose();
                StatusColumn = null;
            }

            if (DeleteColumn != null)
            {
                DeleteColumn.Dispose();
                DeleteColumn = null;
            }

            if (ForceSyncOption != null)
            {
                ForceSyncOption.Dispose();
                ForceSyncOption = null;
            }

            if (GoodreadsAuthURL != null)
            {
                GoodreadsAuthURL.Dispose();
                GoodreadsAuthURL = null;
            }

            if (GoodreadsLoginName != null)
            {
                GoodreadsLoginName.Dispose();
                GoodreadsLoginName = null;
            }

            if (GoodreadsSyncType != null)
            {
                GoodreadsSyncType.Dispose();
                GoodreadsSyncType = null;
            }

            if (GoodreadsVerify != null)
            {
                GoodreadsVerify.Dispose();
                GoodreadsVerify = null;
            }

            if (HardReset != null)
            {
                HardReset.Dispose();
                HardReset = null;
            }

            if (LanguageColumn != null)
            {
                LanguageColumn.Dispose();
                LanguageColumn = null;
            }

            if (MediaColumn != null)
            {
                MediaColumn.Dispose();
                MediaColumn = null;
            }

            if (MediaTable != null)
            {
                MediaTable.Dispose();
                MediaTable = null;
            }

            if (RatingColumn != null)
            {
                RatingColumn.Dispose();
                RatingColumn = null;
            }

            if (SearchMediaField != null)
            {
                SearchMediaField.Dispose();
                SearchMediaField = null;
            }

            if (SearchMediaSearch != null)
            {
                SearchMediaSearch.Dispose();
                SearchMediaSearch = null;
            }

            if (TitleColumn != null)
            {
                TitleColumn.Dispose();
                TitleColumn = null;
            }

            if (UnlockReset != null)
            {
                UnlockReset.Dispose();
                UnlockReset = null;
            }
        }
Example #11
0
        private async Task DownloadMediaFilesFromSever(Dictionary <long, StorageFolder> deckMediaFolders, string remoteMediaFolderPath, MediaTable media, long deckId, string name)
        {
            try
            {
                var oldFile = await deckMediaFolders[deckId].TryGetItemAsync(name) as StorageFile;
                if (oldFile != null)
                {
                    await oldFile.DeleteAsync();
                }

                var newFile = await deckMediaFolders[deckId].CreateFileAsync(name,
                                                                             CreationCollisionOption.ReplaceExisting);
                var remoteFilePath = remoteMediaFolderPath + media.RelativePathName;
                await syncInstance.DownloadItemWithPathAsync(remoteFilePath, newFile);
            }
            catch //Syncing shouldn't stop if some files are not available
            { }
        }