Exemple #1
0
        /// <summary>
        /// Imports the data previously loaded into the database.
        /// </summary>
        /// <param name="importList">The IDs of the elements to import.</param>
        /// <param name="progress">Reports the progress of the operation. First report is the amount of files to process, then subsequent reports represent the quantity done.</param>
        public async Task ImportToDatabase(List <Guid> selection, IProgress <int> progress)
        {
            if (importList == null)
            {
                throw new InvalidOperationException("You must first call ImportPreview");
            }

            int   i = 0;
            Media item;
            await Task.Run(() => {
                using (Entities context = new Entities()) {
                    DbContextTransaction Trans = context.Database.BeginTransaction();
                    foreach (Guid id in selection)
                    {
                        item            = importList.Single(v => v.MediaId == id);
                        item.IsPersonal = true;
                        SyncAccess.InsertOrMerge(item, context);
                        if (progress != null)
                        {
                            progress.Report(++i);
                        }
                    }
                    Trans.Commit();
                }
            });
        }
Exemple #2
0
        /// <summary>
        /// Exports Media items matching the specified list of IDs into specified file in XML format.
        /// </summary>
        /// <param name="exportList">The list of Media IDs to export.</param>
        /// <param name="outputFile">The file to export to.</param>
        public void ExportToFile(List <Guid> exportList, string outputFile)
        {
            List <SyncMedia> ExportData = (from v in SyncAccess.GetMediaListById(exportList) select new SyncMedia(v)).ToList();
            string           ExportXml  = SerializeXml(ExportData);

            File.WriteAllText(outputFile, ExportXml);
        }
Exemple #3
0
        /// <summary>
        /// Parses specified file and returns its raw data.
        /// </summary>
        /// <param name="inputFile">The file to parse.</param>
        /// <returns>A list of Media objects.</returns>
        private List <Media> ParseFile(string inputFile)
        {
            string                ImportXml       = File.ReadAllText(inputFile);
            List <SyncMedia>      ImportList      = DeserializeXml(ImportXml);
            List <MediaCategory>  CacheCategories = SyncAccess.GetMediaCategories();
            List <RatingCategory> CacheRatings    = SyncAccess.GetRatingCategories();
            List <Media>          Result          = (from i in ImportList select i.ConvertToMedia(CacheCategories, CacheRatings)).ToList();

            return(Result);
        }