Ejemplo n.º 1
0
		public void LoadCalibrationPrints()
		{
			if (this.ActivePrinter.Make != null && this.ActivePrinter.Model != null)
			{
				// Load the calibration file names
				List<string> calibrationPrintFileNames = LoadCalibrationPartNamesForPrinter(this.ActivePrinter.Make, this.ActivePrinter.Model);

				var libraryProvider = new LibraryProviderSQLite(null, null, null, "Local Library");
				libraryProvider.EnsureSamplePartsExist(calibrationPrintFileNames);

				var queueItems = QueueData.Instance.GetItemNames();

				// Finally, ensure missing calibration parts are added to the queue if missing
				var filenamesWithoutExtensions = calibrationPrintFileNames.Select(f => Path.GetFileNameWithoutExtension(f));
				foreach (string nameOnly in filenamesWithoutExtensions)
				{
					if (queueItems.Contains(nameOnly))
					{
						continue;
					}

					// Find the first library item with the given name and add it to the queue
					PrintItem libraryItem = libraryProvider.GetLibraryItems(nameOnly).FirstOrDefault();
					if (libraryItem != null)
					{
						QueueData.Instance.AddItem(new PrintItemWrapper(libraryItem));
					}
				}

				libraryProvider.Dispose();
			}
		}
Ejemplo n.º 2
0
        public static string[] SyncCalibrationFilesToDisk(List <string> calibrationPrintFileNames)
        {
            // Ensure the CalibrationParts directory exists to store/import the files from disk
            string tempPath = Path.Combine(ApplicationDataStorage.Instance.ApplicationUserDataPath, "data", "temp", "calibration-parts");

            Directory.CreateDirectory(tempPath);

            // Build a list of temporary files that should be imported into the library
            return(calibrationPrintFileNames.Where(fileName =>
            {
                // Filter out items that already exist in the library
                LibraryProviderSQLite rootLibrary = new LibraryProviderSQLite(null, null);
                return rootLibrary.GetLibraryItems(Path.GetFileNameWithoutExtension(fileName)).Count() <= 0;
            }).Select(fileName =>
            {
                // Copy calibration prints from StaticData to the filesystem before importing into the library
                string tempFile = Path.Combine(tempPath, Path.GetFileName(fileName));
                using (FileStream outstream = File.OpenWrite(tempFile))
                    using (Stream instream = StaticData.Instance.OpenSteam(Path.Combine("OEMSettings", "SampleParts", fileName)))
                    {
                        instream.CopyTo(outstream);
                    }

                // Project the new filename to the output
                return tempFile;
            }).ToArray());
        }
		public async Task LoadCalibrationPrints()
		{
			if (this.ActivePrinter.Make != null && this.ActivePrinter.Model != null)
			{
				// Load the calibration file names
				List<string> calibrationPrintFileNames = LoadCalibrationPartNamesForPrinter(this.ActivePrinter.Make, this.ActivePrinter.Model);

				using (LibraryProviderSQLite instance = new LibraryProviderSQLite(null, null, null, "Local Library"))
				{
					await instance.EnsureSamplePartsExist(calibrationPrintFileNames);
				}

				var queueItems = QueueData.Instance.GetItemNames();

				// Finally, ensure missing calibration parts are added to the queue if missing
				var filenamesWithoutExtensions = calibrationPrintFileNames.Select(f => Path.GetFileNameWithoutExtension(f));
				foreach (string nameOnly in filenamesWithoutExtensions)
				{
					if (queueItems.Contains(nameOnly))
					{
						continue;
					}

					// If the library item does not exist in the queue, add it
					IEnumerable<PrintItem> libraryItems = null;
					using (LibraryProviderSQLite instance = new LibraryProviderSQLite(null, null, null, "Local Library"))
					{
						libraryItems = instance.GetLibraryItems(nameOnly);
					}

					foreach (PrintItem libraryItem in libraryItems)
					{
						if (libraryItem != null)
						{
							QueueData.Instance.AddItem(new PrintItemWrapper(libraryItem));
						}
					}
				}
			}
		}
		public void LoadCalibrationPrints()
		{
			// Load the calibration file names
			string calibrationFiles = ActiveSliceSettings.Instance.GetValue("calibration_files");
			if(string.IsNullOrEmpty(calibrationFiles))
			{
				return;
			}

			string[] calibrationPrintFileNames = calibrationFiles.Split(';');
			if (calibrationPrintFileNames.Length < 1)
			{
				return;
			}

			var libraryProvider = new LibraryProviderSQLite(null, null, null, "Local Library");
			libraryProvider.EnsureSamplePartsExist(calibrationPrintFileNames);

			var queueItems = QueueData.Instance.GetItemNames();

			// Finally, ensure missing calibration parts are added to the queue if missing
			var filenamesWithoutExtensions = calibrationPrintFileNames.Select(f => Path.GetFileNameWithoutExtension(f));
			foreach (string nameOnly in filenamesWithoutExtensions)
			{
				if (queueItems.Contains(nameOnly))
				{
					continue;
				}

				// Find the first library item with the given name and add it to the queue
				PrintItem libraryItem = libraryProvider.GetLibraryItems(nameOnly).FirstOrDefault();
				if (libraryItem != null)
				{
					QueueData.Instance.AddItem(new PrintItemWrapper(libraryItem));
				}
			}

			libraryProvider.Dispose();
		}
		public static string[] SyncCalibrationFilesToDisk(List<string> calibrationPrintFileNames)
		{
			// Ensure the CalibrationParts directory exists to store/import the files from disk
			string tempPath = Path.Combine(ApplicationDataStorage.Instance.ApplicationUserDataPath, "data", "temp", "calibration-parts");
			Directory.CreateDirectory(tempPath);

			// Build a list of temporary files that should be imported into the library
			return calibrationPrintFileNames.Where(fileName =>
			{
				// Filter out items that already exist in the library
				LibraryProviderSQLite rootLibrary = new LibraryProviderSQLite(null, null);
				return rootLibrary.GetLibraryItems(Path.GetFileNameWithoutExtension(fileName)).Count() <= 0;
			}).Select(fileName =>
			{
				// Copy calibration prints from StaticData to the filesystem before importing into the library
				string tempFile = Path.Combine(tempPath, Path.GetFileName(fileName));
				using (FileStream outstream = File.OpenWrite(tempFile))
				using (Stream instream = StaticData.Instance.OpenSteam(Path.Combine("OEMSettings", "SampleParts", fileName)))
				{
					instream.CopyTo(outstream);
				}

				// Project the new filename to the output
				return tempFile;
			}).ToArray();
		}