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> /// Identifies a worksheet whose custom identifier matches the supplied key. /// </summary> /// <param name="provider">The IWorksheetProvider that provides the eligible worksheets.</param> /// <param name="key">The unique GUID string to be matched.</param> /// <returns>The matching worksheet, or null if no match could be found.</returns> public Excel.Worksheet GetWorksheet(IWorksheetProvider provider, string key) { Excel.Worksheet[] sheets = provider.GetWorksheets(); return sheets.FirstOrDefault(s => MatchesKey(s, key)); }
/// <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; }
/// <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> /// 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( 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); }
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); }