private void Remove([NotNull] ScenarioBaseModel scenario) { foreach (var set in scenario.ScenarioSetRefs.References) { var index = set.Members.FindIndex(m => m.Model.Id == scenario.Id); if (index >= 0) { set.Members.RemoveAt(index); } } foreach (var suite in scenario.SuiteRefs.References) { var index = suite.Statements.FindIndex(s => s.Id == scenario.Id); if (index >= 0) { suite.Statements.RemoveAt(index); } } if (scenario is ScenarioModel scenarioModel) { scenarioModel.Deployment.Model.ScenarioRefs.Remove(scenarioModel); } RemoveFromModule(scenario.Module, scenario); }
public static void ReplaceDuplicateScenarios([NotNull] ScenarioBaseModel replacement, [ItemNotNull, NotNull] IEnumerable <ScenarioBaseModel> duplicates) { foreach (var dup in duplicates) { ReplaceDuplicateScenario(replacement, dup); } }
private static void ReplaceInSuite( [NotNull] SuiteDefModel suite, [NotNull] ScenarioBaseModel replaced, [NotNull] ScenarioBaseModel replacement) { var oldIndex = suite.Statements.FindIndex(ind => ind.Id == replaced.Id); if (oldIndex >= 0) { Logger.Info($"replacing {replaced.Name} in suite {suite.Name} to {replacement.Name}"); suite.Statements[oldIndex] = replacement; } }
private static void RemoveFromModule( [NotNull] ModuleModel module, [NotNull] ScenarioBaseModel replaced) { // we need to remove scenario from module, because it is already defined in another module var oldIndex = module.Items.FindIndex(ind => ind.Id == replaced.Id); if (oldIndex >= 0) { Logger.Info($"removing {replaced.Name} in module {module.Path}"); module.Items.RemoveAt(oldIndex); } }
private void UpdateReference([NotNull] ScenarioBaseModel scenario) { foreach (var set in scenario.ScenarioSetRefs.References) { set.Members.Add(new ReferenceModel <ScenarioBaseModel>(scenario)); } foreach (var suite in scenario.SuiteRefs.References) { suite.Statements.Add(scenario); } scenario.Module.Items.Add(scenario); }
private static void ReplaceDuplicateScenario( [NotNull] ScenarioBaseModel replacement, [NotNull] ScenarioBaseModel replaced) { foreach (var set in replaced.ScenarioSetRefs.References) { ReplaceScenarioInSet(set, replaced, replacement); } foreach (var suite in replaced.SuiteRefs.References) { ReplaceInSuite(suite, replaced, replacement); } RemoveFromModule(replaced.Module, replaced); }
private static void ReplaceScenarioInSet( [NotNull] ScenarioSetModel set, [NotNull] ScenarioBaseModel replaced, [NotNull] ScenarioBaseModel replacement) { var oldIndex = set.Members.FindIndex(ind => ind.Model.Id == replaced.Id); if (oldIndex >= 0) { var replacementIsPresent = set.Members.FindIndex(ind => ind.Model.Id == replacement.Id) >= 0; if (replacementIsPresent) { Logger.Info($"removing {replaced.Name} from set {set.Name} because original already present"); set.Members.RemoveAt(oldIndex); } else { Logger.Info($"replacing {replaced.Name} in set {set.Name} to {replacement.Name}"); set.Members[oldIndex] = new ReferenceModel <ScenarioBaseModel>(replacement); } } }