public void VerifyThatDialogResultIsReturnedWhenOk() { var submitmessage = "this is the submitmessage"; var processedValueSet = new ProcessedValueSet(this.parameterValueSet, ValidationResultKind.Valid); var valueSetValue = new ValueSetValues(0, this.parameterType, ParameterSwitchKind.COMPUTED, "a gazilion", "a gazilion", "a gazilion", "a gazilion"); processedValueSet.UpdateClone(valueSetValue); var processedValueSets = new Dictionary <Guid, ProcessedValueSet>(); processedValueSets.Add(processedValueSet.OriginalThing.Iid, processedValueSet); var viewmodel = new SubmitConfirmationViewModel(processedValueSets, ValueSetKind.All); viewmodel.SubmitMessage = submitmessage; var row = viewmodel.ParameterOrOverrideWorkbookRebuildRowViewModels.Single(); Assert.IsTrue(row.IsSelected); Assert.IsTrue(viewmodel.OkCommand.CanExecute(null)); viewmodel.OkCommand.Execute(null); var result = (SubmitConfirmationDialogResult)viewmodel.DialogResult; Assert.IsTrue(result.Result.Value); Assert.AreEqual(submitmessage, result.SubmitMessage); Assert.IsNotEmpty(result.Clones); }
public void VerifyThatCheckAllWorks() { var processedValueSet1 = new ProcessedValueSet(this.parameterValueSet, ValidationResultKind.Valid); var parameterValueSet2 = new ParameterValueSet(Guid.NewGuid(), null, null) { Manual = new ValueArray <string>(new List <string>() { "1" }), Computed = new ValueArray <string>(new List <string>() { "2" }), Reference = new ValueArray <string>(new List <string>() { "3" }), Formula = new ValueArray <string>(new List <string>() { "-" }), ValueSwitch = ParameterSwitchKind.MANUAL }; var parameter2 = new Parameter(Guid.NewGuid(), null, null) { ParameterType = this.parameterType }; this.elementDefinition.Parameter.Add(parameter2); parameter2.ValueSet.Add(parameterValueSet2); var processedValueSet2 = new ProcessedValueSet(parameterValueSet2, ValidationResultKind.Valid); var valueSetValue1 = new ValueSetValues(0, this.parameterType, ParameterSwitchKind.COMPUTED, "a gazilion", "a gazilion", "a gazilion", "a gazilion"); processedValueSet1.UpdateClone(valueSetValue1); processedValueSet2.UpdateClone(valueSetValue1); var processedValueSets = new Dictionary <Guid, ProcessedValueSet>(); processedValueSets.Add(processedValueSet1.OriginalThing.Iid, processedValueSet1); processedValueSets.Add(processedValueSet2.OriginalThing.Iid, processedValueSet2); var vm = new SubmitConfirmationViewModel(processedValueSets, ValueSetKind.All); var rows = vm.ParameterOrOverrideWorkbookRebuildRowViewModels; Assert.AreEqual(2, rows.Count); Assert.IsTrue(rows.All(r => r.IsSelected)); }
public void VerifyThatRowsAreCreated() { var processedValueSet = new ProcessedValueSet(this.parameterValueSet, ValidationResultKind.Valid); var valueSetValue = new ValueSetValues(0, this.parameterType, ParameterSwitchKind.COMPUTED, "a gazilion", "a gazilion", "a gazilion", "a gazilion"); processedValueSet.UpdateClone(valueSetValue); var processedValueSets = new Dictionary <Guid, ProcessedValueSet>(); processedValueSets.Add(processedValueSet.OriginalThing.Iid, processedValueSet); var viewmodel = new SubmitConfirmationViewModel(processedValueSets, ValueSetKind.All); Assert.AreEqual(1, viewmodel.ParameterOrOverrideWorkbookRebuildRowViewModels.Count); }
public void VerifyThatDialogResultIsReturnedWhenCancelled() { var processedValueSet = new ProcessedValueSet(this.parameterValueSet, ValidationResultKind.Valid); var valueSetValue = new ValueSetValues(0, this.parameterType, ParameterSwitchKind.COMPUTED, "a gazilion", "a gazilion", "a gazilion", "a gazilion"); processedValueSet.UpdateClone(valueSetValue); var processedValueSets = new Dictionary <Guid, ProcessedValueSet>(); processedValueSets.Add(processedValueSet.OriginalThing.Iid, processedValueSet); var viewmodel = new SubmitConfirmationViewModel(processedValueSets, ValueSetKind.All); viewmodel.CancelCommand.Execute(null); var result = (BaseDialogResult)viewmodel.DialogResult; Assert.IsFalse(result.Result.Value); }
public void VerifyThatAtLeastOneRowHasToBeSelectedBeforeOkCanExecute() { var processedValueSet = new ProcessedValueSet(this.parameterValueSet, ValidationResultKind.Valid); var valueSetValue = new ValueSetValues(0, this.parameterType, ParameterSwitchKind.COMPUTED, "a gazilion", "a gazilion", "a gazilion", "a gazilion"); processedValueSet.UpdateClone(valueSetValue); var processedValueSets = new Dictionary <Guid, ProcessedValueSet>(); processedValueSets.Add(processedValueSet.OriginalThing.Iid, processedValueSet); var viewmodel = new SubmitConfirmationViewModel(processedValueSets, ValueSetKind.All); var row = viewmodel.ParameterOrOverrideWorkbookRebuildRowViewModels.Single(); Assert.IsTrue(row.IsSelected); Assert.IsTrue(viewmodel.OkCommand.CanExecute(null)); row.IsSelected = false; Assert.IsFalse(viewmodel.OkCommand.CanExecute(null)); }
/// <summary> /// Submits the changes the user has made to inputs and outputs on the Parameter sheet to the data-source. /// </summary> /// <param name="session"> /// The current <see cref="ISession"/> that is submitting the outputs. /// </param> /// <param name="iteration"> /// The <see cref="Iteration"/> that that contains the value sets that value-sets that if changed need to be submitted. /// </param> public async Task SubmitAll(ISession session, Iteration iteration) { this.application.StatusBar = string.Empty; var workbookSession = await this.CreateWorkbookSession(session.Dal, session.Credentials); try { IReadOnlyDictionary <Guid, ProcessedValueSet> processedValueSets; var parameterSheetProcessor = new ParameterSheetProcessor(workbookSession, iteration); parameterSheetProcessor.ValidateValuesAndCheckForChanges(this.application, this.workbook, out processedValueSets); if (!processedValueSets.Any()) { this.application.StatusBar = "Submit cancelled: no values changed"; return; } var submitConfirmationViewModel = new SubmitConfirmationViewModel(processedValueSets, ValueSetKind.All); var dialogResult = this.DialogNavigationService.NavigateModal(submitConfirmationViewModel); if (dialogResult.Result.HasValue && dialogResult.Result.Value) { var submitConfirmationDialogResult = (SubmitConfirmationDialogResult)dialogResult; var context = TransactionContextResolver.ResolveContext(iteration); var transaction = new ThingTransaction(context); foreach (var clone in submitConfirmationDialogResult.Clones) { transaction.CreateOrUpdate(clone); } // TODO: enable when OperationContainer.ResolveRoute supports this //var clonedEngineeringModel = (EngineeringModel)iteration.Container.Clone(); //var logEntry = new ModelLogEntry(iid: Guid.NewGuid()) // { // Content = submitConfirmationDialogResult.SubmitMessage, // Author = session.ActivePerson, // LanguageCode = "en-GB", // Level = LogLevelKind.USER, // AffectedItemIid = submitConfirmationDialogResult.Clones.Select(clone => clone.Iid).ToList() // }; //clonedEngineeringModel.LogEntry.Add(logEntry); //transaction.Create(logEntry); var operationContainer = transaction.FinalizeTransaction(); this.application.StatusBar = string.Format("CDP4: Submitting data to {0}", session.DataSourceUri); this.application.Cursor = XlMousePointer.xlWait; var sw = new Stopwatch(); sw.Start(); await session.Write(operationContainer); sw.Stop(); this.application.StatusBar = string.Format("CDP4: SitedirectoryData submitted in {0} [ms]", sw.ElapsedMilliseconds); this.application.StatusBar = "CDP4: Writing session data to workbook"; sw.Start(); this.WriteWorkbookDataToWorkbook(iteration); sw.Stop(); this.application.StatusBar = string.Format("CDP4: Session data written in {0} [ms]", sw.ElapsedMilliseconds); } else { this.application.StatusBar = "CDP4: Submit parameters and subscription has been cancelled by the user."; var parameterSheetRowHighligter = new ParameterSheetRowHighligter(); parameterSheetRowHighligter.HighlightRows(this.application, this.workbook, processedValueSets); } } catch (Exception ex) { this.application.StatusBar = "CDP4: submission failed."; Logger.Error(ex); } finally { this.application.Cursor = XlMousePointer.xlDefault; } }