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(); } }
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(); }