private void Parse() { Logger.Info("Parse: Target: \"{0}\"", Target); Reference = new Excel.Models.Reference(Target); IsReference = Reference.IsValid; if (!String.IsNullOrEmpty(Target)) { if (_genericUrlPattern.Value.IsMatch(Target)) { Logger.Info("Parse: Detected generic URL pattern, prepending http://"); _target = "http://" + _target; } try { Uri = new Uri(Target); IsFile = !IsReference && Uri.IsFile; IsWebUrl = !IsReference && Uri.IsWellFormedOriginalString() && !Uri.IsFile; } catch (Exception e) { Logger.Warn("Parse: Failed to create Uri object"); Logger.Warn(e); } } else { IsFile = false; IsWebUrl = false; Uri = null; } CanJump = (IsReference || IsFile || IsWebUrl); Logger.Debug("Parse: IsReference: {0}, IsFile: {1}, IsWebUrl: {2}, CanJump: {3}", IsReference, IsFile, IsWebUrl, CanJump); }
static void StoreOrRestoreCsvSelection() { SelectionViewModel svm = new SelectionViewModel(Instance.Default.Application); if (svm.IsRange) { Logger.Info("RestoreLastCsvSelection: Current selection is range"); Excel.Models.Reference reference = new Excel.Models.Reference(svm.Range); // If there currently is no range selection (only 1 cell selected), restore the previously // saved range. if (reference.CellCount == 1) { Logger.Info("RestoreLastCsvSelection: Selection is a single cell: Attempting to restore"); using (WorkbookStorage.Store store = new WorkbookStorage.Store(true)) { reference.ReferenceString = store.Get(XLToolbox.Properties.StoreNames.Default.CsvRange, String.Empty); if (reference.IsValid) { Logger.Info("RestoreLastCsvSelection: Activating the range"); reference.Activate(); } else { Logger.Warn("RestoreLastCsvSelection: Invalid reference"); } } } else { Logger.Info("RestoreLastCsvSelection: Selection is range of cells: Storing"); using (WorkbookStorage.Store store = new WorkbookStorage.Store(true)) { store.Put(XLToolbox.Properties.StoreNames.Default.CsvRange, "=" + reference.ReferenceString); } } } else { Logger.Info("RestoreLastCsvSelection: Current selection is not a range"); } }