public ProjectConfigurationDialogue(IWorksheetProvider wsProvider, INamedRangeProvider nrProvider) { InitializeComponent(); Text = TextResources.Title_ProjectConfigurationDialogue; DialogResult = DialogResult.Cancel; ConfigurationDialogueContent content = Content; content.WorksheetProvider = wsProvider; content.NamedRangeProvider = nrProvider; content.Accepted += Content_Accepted; content.Cancelled += Content_Cancelled; }
/// <summary> /// Initialises a new, empty ProjectInvocationRule instance. /// </summary> /// <param name="wsProvider">An IWorksheetProvider implementation.</param> /// <param name="nrProvider">An INamedRangeProvider implementation.</param> /// <param name="id">A number that identifies the ProjectInvocationRule in a set of such rules.</param> /// <exception cref="System.ArgumentNullException">Either the IWorksheetProvider or the INamedRangeProvider /// is null.</exception> public ProjectInvocationRule(IWorksheetProvider wsProvider, INamedRangeProvider nrProvider, int id) { SetProviders(wsProvider, nrProvider); Id = id; m_inputSheetKey = m_outputSheetKey = GetFirstSheetKey(); UpdateInputSheetRangeNames(); UpdateOutputSheetRangeNames(); }
/// <summary> /// Sets this ProjectInvocationRule's IWorksheetProvider and INamedRangeProvider references, throwing an /// ArgumentNullException if either is null. /// </summary> private void SetProviders(IWorksheetProvider wsProvider, INamedRangeProvider nrProvider) { if (wsProvider == null) { throw new ArgumentNullException("wsProvider"); } if (nrProvider == null) { throw new ArgumentNullException("nrProvider"); } m_wsProvider = wsProvider; m_nrProvider = nrProvider; }
private static ProjectInvocationRule Create( int id, IWorksheetProvider wsProvider = null, INamedRangeProvider nrProvider = null) { wsProvider = wsProvider ?? new Mock<IWorksheetProvider>().Object; nrProvider = nrProvider ?? new Mock<INamedRangeProvider>().Object; return new ProjectInvocationRule(wsProvider, nrProvider, id); }
/// <summary> /// Initialises a new ProjectInvocationRule using persisted field values. /// </summary> /// <param name="wsProvider">An IWorksheetProvider implementation.</param> /// <param name="nrProvider">An INamedRangeProvider implementation.</param> /// <param name="reader">An IDataReader capable of supplying the requisite field values on demand.</param> /// <exception cref="System.ArgumentNullException">Either the IWorksheetProvider or the INamedRangeProvider /// is null.</exception> /// <exception cref="System.NullReferenceException">The IDataReader is null.</exception> public ProjectInvocationRule(IWorksheetProvider wsProvider, INamedRangeProvider nrProvider, IDataReader reader) { SetProviders(wsProvider, nrProvider); Id = reader.Read<int>(); UsesInput = reader.Read<bool>(); InputSheetKey = reader.Read<string>(); InputCellRange = reader.Read<string>(); InputRangeOrder = reader.Read<RangeOrdering>(); TimeLimit = reader.Read<int>(); Unit = reader.Read<TimeUnit>(); UsesOutput = reader.Read<bool>(); OutputSheetKey = reader.Read<string>(); OutputCellRange = reader.Read<string>(); OutputRangeOrder = reader.Read<RangeOrdering>(); ProjectPath = reader.Read<string>(); ReloadProjectBeforeExecuting = reader.Read<bool>(); Enabled = reader.Read<bool>(); LastExecutionResult = reader.Read<ExecutionResult>(); UpdateInputSheetRangeNames(); UpdateOutputSheetRangeNames(); }
private static ProjectInvocationRule Create( IWorksheetProvider wsProvider = null, INamedRangeProvider nrProvider = null, IDataReader reader = null) { wsProvider = wsProvider ?? new Mock<IWorksheetProvider>().Object; nrProvider = nrProvider ?? new Mock<INamedRangeProvider>().Object; reader = reader ?? new Mock<IDataReader>().Object; return new ProjectInvocationRule(wsProvider, nrProvider, reader); }
/// <summary> /// Reads a set of project invocation rules from a worksheet. /// </summary> /// <remarks> /// The worksheet is expected to store the execution mode in cell A1. Each invocation rule occupies /// its own row, starting at row 2: each column contains a field value and all such values are used /// collectively to rehydrate a rule. /// </remarks> /// <param name="wsProvider">An IWorksheetProvider implementation.</param> /// <param name="nrProvider">An INamedRangeProvider implementation.</param> /// <param name="ws">The worksheet containing the rules to be read.</param> /// <param name="mode">The ExecutionMode read from the worksheet.</param> /// <param name="rules">The project invocation rules read from the worksheet.</param> public void Load(IWorksheetProvider wsProvider, INamedRangeProvider nrProvider, Excel.Worksheet ws, out ExecutionMode mode, out ProjectInvocationRule[] rules) { mode = Helper.ReadCell<ExecutionMode>(ws, 1, 1); var reader = new ProjectRuleDataReader(wsProvider, nrProvider); rules = reader.Read(ws, 2); }
/// <summary> /// Initialises a new CellRangeValidator instance. /// </summary> /// <param name="range">A string representation that specifies the cells of any pair of diagonally /// opposed corners of the range being represented.</param> /// <param name="provider">An INamedRangeProvider implementation.</param> public CellRangeValidator(string range, INamedRangeProvider provider) { m_range = range; SetState(provider); }
/// <summary> /// Sets the state of this CellRangeValidator based on the range notation supplied during /// instantiation. /// </summary> private void SetState(INamedRangeProvider provider) { if (provider.IdentifyWorksheet(m_range) != null) { IsValid = true; } else { bool match; string r = m_range.ToUpper(); string firstCell = null, lastCell = null; match = s_cellRegex.IsMatch(r); if (match) { firstCell = lastCell = r; } else { match = s_rangeRegex.IsMatch(r); if (match) { int pos = r.IndexOf(":"); firstCell = r.Substring(0, pos); lastCell = r.Substring(pos + 1, r.Length - pos - 1); } } IsValid = match ? CellIsInRange(firstCell) && CellIsInRange(lastCell) : false; } }
private static CellRangeValidator Create(string range, INamedRangeProvider provider) { return new CellRangeValidator(range, provider); }