Best NBi code snippet using NBi.Core.ResultSet.Alteration.Duplication.DuplicationFactory.Instantiate
ResultSetSystemHelper.cs
Source:ResultSetSystemHelper.cs  
...51        protected SettingsXml.DefaultScope Scope { get; } = SettingsXml.DefaultScope.Everywhere;52        protected IDictionary<string, IVariable> Variables { get; }53        public ResultSetSystemHelper(ServiceLocator serviceLocator, SettingsXml.DefaultScope scope, IDictionary<string, IVariable> variables)54            => (ServiceLocator, Scope, Variables) = (serviceLocator, scope, variables);55        public IResultSetResolver InstantiateResolver(ResultSetSystemXml resultSetXml)56        {57            var argsBuilder = new ResultSetResolverArgsBuilder(ServiceLocator);58            argsBuilder.Setup(resultSetXml, resultSetXml.Settings, Scope, Variables);59            argsBuilder.Build();60            var factory = ServiceLocator.GetResultSetResolverFactory();61            var resolver = factory.Instantiate(argsBuilder.GetArgs());62            return resolver;63        }64        public IEnumerable<Alter> InstantiateAlterations(ResultSetSystemXml resultSetXml)65        {66            if ((resultSetXml.Alterations?.Count ?? 0) == 0)67                yield break;68            foreach (var alterationXml in resultSetXml.Alterations)69            {70                switch (alterationXml)71                {72                    case FilterXml x: yield return InstantiateFilter(x); break;73                    case ConvertXml x: yield return InstantiateConvert(x); break;74                    case TransformXml x: yield return InstantiateTransform(x); break;75                    case RenamingXml x: yield return InstantiateRename(x); break;76                    case SummarizeXml x: yield return InstantiateSummarize(x); break;77                    case ExtendXml x: yield return InstantiateExtend(x); break;78                    case UnstackXml x: yield return InstantiateUnstack(x); break;79                    case ProjectAwayXml x: yield return InstantiateProjectAway(x); break;80                    case ProjectXml x: yield return InstantiateProject(x); break;81                    case LookupReplaceXml x: yield return InstantiateLookupReplace(x, resultSetXml.Settings); break;82                    case MergeXml x: yield return InstantiateMerging(x, resultSetXml.Settings); break;83                    case DuplicateXml x: yield return InstantiateDuplicate(x); break;84                    default: throw new ArgumentException();85                }86            }87        }88        private Alter InstantiateFilter(FilterXml filterXml)89        {90            var context = new Context(Variables);91            var factory = new ResultSetFilterFactory(ServiceLocator);92            if (filterXml.Ranking == null && filterXml.Uniqueness == null)93            {94                var expressions = new List<IColumnExpression>();95                if (filterXml.Expression != null)96                    expressions.Add(filterXml.Expression);97                if (filterXml.Predication != null)98                {99                    var helper = new PredicateArgsBuilder(ServiceLocator, context);100                    var args = helper.Execute(filterXml.Predication.ColumnType, filterXml.Predication.Predicate);101                    return factory.Instantiate102                                (103                                    new PredicationArgs(filterXml.Predication.Operand, args)104                                    , context105                                ).Apply;106                }107                if (filterXml.Combination != null)108                {109                    var helper = new PredicateArgsBuilder(ServiceLocator, context);110                    var predicationArgs = new List<PredicationArgs>();111                    foreach (var predication in filterXml.Combination.Predications)112                    {113                        var args = helper.Execute(predication.ColumnType, predication.Predicate);114                        predicationArgs.Add(new PredicationArgs(predication.Operand, args));115                    }116                    return factory.Instantiate117                                (118                                    filterXml.Combination.Operator119                                    , predicationArgs120                                    , context121                                ).Apply;122                }123                throw new ArgumentException();124            }125            else if (filterXml.Ranking != null)126            {127                var groupByArgs = BuildGroupByArgs(filterXml.Ranking.GroupBy, context);128                var groupByFactory = new GroupByFactory();129                var groupBy = groupByFactory.Instantiate(groupByArgs);130                var rankingGroupByArgs = new RankingGroupByArgs(groupBy, filterXml.Ranking.Option, filterXml.Ranking.Count, filterXml.Ranking.Operand, filterXml.Ranking.Type);131                return factory.Instantiate(rankingGroupByArgs, context).Apply;132            }133            else if (filterXml.Uniqueness != null)134            {135                var groupByArgs = BuildGroupByArgs(filterXml.Uniqueness.GroupBy, context);136                var groupByFactory = new GroupByFactory();137                var groupBy = groupByFactory.Instantiate(groupByArgs);138                var uniquenessArgs = new UniquenessArgs(groupBy);139                return factory.Instantiate(uniquenessArgs, context).Apply;140            }141            throw new ArgumentOutOfRangeException();142        }143        private IGroupByArgs BuildGroupByArgs(GroupByXml xml, Context context)144        {145            if (xml == null)146                return new NoneGroupByArgs();147            if ((xml?.Columns?.Count ?? 0) > 0)148                return new ColumnGroupByArgs(xml.Columns, context);149            if ((xml?.Cases?.Count ?? 0) > 0)150            {151                var builder = new PredicateArgsBuilder(ServiceLocator, context);152                var predications = new List<IPredication>();153                foreach (var caseXml in xml.Cases)154                {155                    if (caseXml.Predication is SinglePredicationXml)156                    {157                        var predicationXml = (caseXml.Predication) as SinglePredicationXml;158                        var args = builder.Execute(predicationXml.ColumnType, predicationXml.Predicate);159                        var predicate = new PredicateFactory().Instantiate(args);160                        var predicationFactory = new PredicationFactory();161                        predications.Add(predicationFactory.Instantiate(predicate, predicationXml.Operand));162                    }163                }164                return new CaseGroupByArgs(predications, context);165            }166            throw new ArgumentOutOfRangeException();167        }168        private Alter InstantiateConvert(ConvertXml convertXml)169        {170            var factory = new ConverterFactory();171            var converter = factory.Instantiate(convertXml.Converter.From, convertXml.Converter.To, convertXml.Converter.DefaultValue, convertXml.Converter.Culture);172            var engine = new ConverterEngine(convertXml.Column, converter);173            return engine.Execute;174        }175        private Alter InstantiateRename(RenamingXml renameXml)176        {177            var helper = new ScalarHelper(ServiceLocator, new Context(Variables));178            var newName = helper.InstantiateResolver<string>(renameXml.NewName);179            IMissingColumnStrategy strategy = new FailureMissingColumnStrategy();180            switch (renameXml.Missing.Behavior)181            {182                case alt.Renaming.MissingColumnBehavior.Skip:183                    strategy = new SkipAlterationStrategy();184                    break;185                default:186                    strategy = new FailureMissingColumnStrategy();187                    break;188            }189            var factory = new RenamingFactory();190            var renamer = factory.Instantiate(new NewNameRenamingArgs(renameXml.Identifier, newName, strategy));191            return renamer.Execute;192        }193        private Alter InstantiateMerging(MergeXml mergeXml, SettingsXml settingsXml)194        {195            var innerService = new ResultSetServiceBuilder();196            mergeXml.ResultSet.Settings = settingsXml;197            innerService.Setup(InstantiateResolver(mergeXml.ResultSet));198            innerService.Setup(InstantiateAlterations(mergeXml.ResultSet));199            var factory = new MergingFactory();200            IMergingArgs args;201            switch (mergeXml)202            {203                case UnionXml union: args = new UnionArgs(innerService.GetService(), union.ColumnIdentity); break;204                default: args = new CartesianProductArgs(innerService.GetService()); break;205            }206            var merger = factory.Instantiate(args);207            return merger.Execute;208        }209        private Alter InstantiateTransform(TransformXml transformXml)210        {211            var identifierFactory = new ColumnIdentifierFactory();212            var provider = new TransformationProvider(new ServiceLocator(), new Context(Variables));213            provider.Add(transformXml.Identifier, transformXml);214            return provider.Transform;215        }216        private Alter InstantiateSummarize(SummarizeXml summarizeXml)217        {218            var scalarHelper = new ScalarHelper(ServiceLocator, null);219            var factory = new SummarizationFactory();220            var aggregations = new List<ColumnAggregationArgs>()221                    {222                        new ColumnAggregationArgs(223                            (summarizeXml.Aggregation as ColumnAggregationXml)?.Identifier,224                            summarizeXml.Aggregation.Function,225                            summarizeXml.Aggregation.ColumnType,226                            summarizeXml.Aggregation.Parameters.Select(x => scalarHelper.InstantiateResolver(summarizeXml.Aggregation.ColumnType, x)).ToList()227                        )228                    };229            var groupBys = summarizeXml.GroupBy?.Columns?.Cast<IColumnDefinitionLight>() ?? new List<IColumnDefinitionLight>();230            var summarizer = factory.Instantiate(new SummarizeArgs(aggregations, groupBys));231            return summarizer.Execute;232        }233        private Alter InstantiateExtend(ExtendXml extendXml)234        {235            var factory = new ExtensionFactory(ServiceLocator, new Context(Variables));236            var extender = factory.Instantiate(new ExtendArgs237                (238                    extendXml.Identifier239                    , extendXml.Script?.Code ?? throw new ArgumentException("Script cannot be empty or null")240                    , extendXml.Script.Language241                ));242            return extender.Execute;243        }244        private Alter InstantiateUnstack(UnstackXml unstackXml)245        {246            var factory = new ReshapingFactory();247            var header = unstackXml.Header.Column.Identifier;248            var groupBys = unstackXml.GroupBy?.Columns?.Cast<IColumnDefinitionLight>() ?? new List<IColumnDefinitionLight>();249            var values = unstackXml.Header.EnforcedValues.Select(x => new ColumnNameIdentifier(x));250            var reshaper = factory.Instantiate(new UnstackArgs(header, groupBys, values));251            return reshaper.Execute;252        }253        private Alter InstantiateProject(ProjectXml projectXml)254        {255            var factory = new ProjectionFactory();256            var project = factory.Instantiate(new ProjectArgs(projectXml.Columns.Select(x => x.Identifier)));257            return project.Execute;258        }259        private Alter InstantiateProjectAway(ProjectAwayXml projectXml)260        {261            var factory = new ProjectionFactory();262            var project = factory.Instantiate(new ProjectAwayArgs(projectXml.Columns.Select(x => x.Identifier)));263            return project.Execute;264        }265        private Alter InstantiateDuplicate(DuplicateXml duplicateXml)266        {267            var context = new Context(Variables);268            //Predication269            var predicationFactory = new PredicationFactory();270            var predication = predicationFactory.True;271            if (duplicateXml.Predication != null)272            {273                var helper = new PredicateArgsBuilder(ServiceLocator, context);274                var predicateArgs = helper.Execute(duplicateXml.Predication.ColumnType, duplicateXml.Predication.Predicate);275                var predicateFactory = new PredicateFactory();276                var predicate = predicateFactory.Instantiate(predicateArgs);277                predication = predicationFactory.Instantiate(predicate, duplicateXml.Predication.Operand);278            }279            //Times280            var times = new ScalarHelper(ServiceLocator, context).InstantiateResolver<int>(duplicateXml.Times);281            //Outputs282            var outputs = new List<OutputArgs>();283            foreach (var outputXml in duplicateXml.Outputs)284                if (outputXml.Class == OutputClass.Script)285                    outputs.Add(new OutputScriptArgs(ServiceLocator, context, outputXml.Identifier, outputXml.Script.Language, outputXml.Script.Code));286            else if(outputXml.Class == OutputClass.Static)287                    outputs.Add(new OutputValueArgs(outputXml.Identifier, outputXml.Value));288                else289                    outputs.Add(new OutputArgs(outputXml.Identifier, outputXml.Class));290            //Duplicate291            var args = new DuplicateArgs(predication, times, outputs);292            var factory = new DuplicationFactory(ServiceLocator, context);293            var duplicate = factory.Instantiate(args);294            return duplicate.Execute;295        }296        private Alter InstantiateLookupReplace(LookupReplaceXml lookupReplaceXml, SettingsXml settingsXml)297        {298            var factory = new LookupFactory();299            var innerService = new ResultSetServiceBuilder();300            lookupReplaceXml.ResultSet.Settings = settingsXml;301            innerService.Setup(InstantiateResolver(lookupReplaceXml.ResultSet));302            innerService.Setup(InstantiateAlterations(lookupReplaceXml.ResultSet));303            IMissingStrategy strategy = new FailureMissingStrategy();304            switch (lookupReplaceXml.Missing.Behavior)305            {306                case alt.Lookup.Behavior.OriginalValue:307                    strategy = new OriginalValueMissingStrategy();308                    break;309                case alt.Lookup.Behavior.DefaultValue:310                    strategy = new DefaultValueMissingStrategy(lookupReplaceXml.Missing.DefaultValue);311                    break;312                case alt.Lookup.Behavior.DiscardRow:313                    strategy = new DiscardRowMissingStrategy();314                    break;315                default:316                    strategy = new FailureMissingStrategy();317                    break;318            }319            var lookup = factory.Instantiate(320                    new LookupReplaceArgs(321                        innerService.GetService(),322                        BuildMappings(lookupReplaceXml.Join).ElementAt(0),323                        lookupReplaceXml.Replacement.Identifier,324                        strategy325                ));326            return lookup.Execute;327        }328        private IEnumerable<ColumnMapping> BuildMappings(JoinXml joinXml)329        {330            var factory = new ColumnIdentifierFactory();331            return joinXml?.Mappings.Select(mapping => new ColumnMapping(332                        factory.Instantiate(mapping.Candidate)333                        , factory.Instantiate(mapping.Reference)334                        , mapping.Type))335                .Union(336                    joinXml?.Usings.Select(@using => new ColumnMapping(337                        factory.Instantiate(@using.Column)338                        , @using.Type)339                    ));340        }341    }342}...DuplicationFactoryTest.cs
Source:DuplicationFactoryTest.cs  
...16{17    public class DuplicationFactoryTest18    {19        [Test]20        public void Instantiate_DuplicateArgs_DuplicateEngine()21        {22            var factory = new DuplicationFactory(null, new Context(null));23            var extender = factory.Instantiate(new DuplicateArgs(24                new PredicationFactory().Instantiate(new PredicateFactory().Instantiate(new PredicateArgs()), new ColumnOrdinalIdentifier(0)),25                new LiteralScalarResolver<int>(1),26                new List<OutputArgs>()27                ));28            Assert.That(extender, Is.Not.Null);29            Assert.That(extender, Is.TypeOf<DuplicateEngine>());30        }31    }32}...DuplicationFactory.cs
Source:DuplicationFactory.cs  
...12        protected ServiceLocator ServiceLocator { get; }13        protected Context Context { get; }14        public DuplicationFactory(ServiceLocator serviceLocator, Context context)15            => (ServiceLocator, Context) = (serviceLocator, context);16        public IDuplicationEngine Instantiate(IDuplicationArgs args)17        {18            switch (args)19            {20                case DuplicateArgs x: return new DuplicateEngine(ServiceLocator, Context, x.Predication, x.Times, x.Outputs);21                default: throw new ArgumentException();22            };23        }24    }25}...Instantiate
Using AI Code Generation
1using System;2using System.Collections.Generic;3using System.Linq;4using System.Text;5using System.Threading.Tasks;6using NBi.Core.ResultSet.Alteration.Duplication;7{8    {9        static void Main(string[] args)10        {11            DuplicationFactory dupFactory = new DuplicationFactory();12            var result = dupFactory.Instantiate("1");13            Console.WriteLine(result);14            Console.ReadKey();15        }16    }17}18using System;19using System.Collections.Generic;20using System.Linq;21using System.Text;22using System.Threading.Tasks;23using NBi.Core.ResultSet.Alteration.Duplication;24{25    {26        static void Main(string[] args)27        {28            DuplicationFactory dupFactory = new DuplicationFactory();29            var result = dupFactory.Instantiate("ID=1");30            Console.WriteLine(result);31            Console.ReadKey();32        }33    }34}35NBi.NUnit.Runtime.TestSuiteExecutionException: 'An error occurred while executing the test suite. ---> System.ArgumentException: Invalid argument 'ID=1' for duplication. Expected format: '1' or '1,2,3' or '1,2,3;4,5,6' or '1,2Instantiate
Using AI Code Generation
1using System;2using System.Collections.Generic;3using System.Linq;4using System.Text;5using System.Threading.Tasks;6using NBi.Core.ResultSet.Alteration.Duplication;7using NBi.Core.ResultSet;8using NBi.Core.Calculation;9using NBi.Core.Calculation.Predicate;10using NBi.Core.Calculation.Ranking;11using NBi.Core.Calculation.Ranking.Percentile;12using NBi.Core.Calculation.Ranking.Numeric;13using NBi.Core.Calculation.Ranking.Text;14using NBi.Core.Calculation.Ranking.Date;15using NBi.Core.Calculation.Ranking.RowNumber;16using NBi.Core.Calculation.Ranking.Percentile;17using NBi.Core.Calculation.Ranking.Numeric;18using NBi.Core.Calculation.Ranking.Text;19using NBi.Core.Calculation.Ranking.Date;20using NBi.Core.Calculation.Ranking.RowNumber;21using NBi.Core.Calculation.Ranking.Percentile;22using NBi.Core.Calculation.Ranking.Numeric;23using NBi.Core.Calculation.Ranking.Text;24using NBi.Core.Calculation.Ranking.Date;25using NBi.Core.Calculation.Ranking.RowNumber;26using NBi.Core.Calculation.Ranking.Percentile;27using NBi.Core.Calculation.Ranking.Numeric;28using NBi.Core.Calculation.Ranking.Text;29using NBi.Core.Calculation.Ranking.Date;30using NBi.Core.Calculation.Ranking.RowNumber;31using NBi.Core.Calculation.Ranking.Percentile;32using NBi.Core.Calculation.Ranking.Numeric;33using NBi.Core.Calculation.Ranking.Text;34using NBi.Core.Calculation.Ranking.Date;35using NBi.Core.Calculation.Ranking.RowNumber;36using NBi.Core.Calculation.Ranking.Percentile;37using NBi.Core.Calculation.Ranking.Numeric;38using NBi.Core.Calculation.Ranking.Text;39using NBi.Core.Calculation.Ranking.Date;40using NBi.Core.Calculation.Ranking.RowNumber;41using NBi.Core.Calculation.Ranking.Percentile;42using NBi.Core.Calculation.Ranking.Numeric;43using NBi.Core.Calculation.Ranking.Text;44using NBi.Core.Calculation.Ranking.Date;45using NBi.Core.Calculation.Ranking.RowNumber;46using NBi.Core.Calculation.Ranking.Percentile;Instantiate
Using AI Code Generation
1DuplicationFactory factory = new DuplicationFactory();2var duplication = factory.Instantiate("1");3duplication.Apply(rs);4DuplicationFactory factory = new DuplicationFactory();5var duplication = factory.Instantiate("2");6duplication.Apply(rs);7DuplicationFactory factory = new DuplicationFactory();8var duplication = factory.Instantiate("3");9duplication.Apply(rs);10DuplicationFactory factory = new DuplicationFactory();11var duplication = factory.Instantiate("4");12duplication.Apply(rs);13DuplicationFactory factory = new DuplicationFactory();14var duplication = factory.Instantiate("5");15duplication.Apply(rs);16DuplicationFactory factory = new DuplicationFactory();17var duplication = factory.Instantiate("6");18duplication.Apply(rs);19DuplicationFactory factory = new DuplicationFactory();20var duplication = factory.Instantiate("7");21duplication.Apply(rs);22DuplicationFactory factory = new DuplicationFactory();23var duplication = factory.Instantiate("8");24duplication.Apply(rs);25DuplicationFactory factory = new DuplicationFactory();26var duplication = factory.Instantiate("9");27duplication.Apply(rs);28DuplicationFactory factory = new DuplicationFactory();29var duplication = factory.Instantiate("10");Instantiate
Using AI Code Generation
1var duplicationFactory = new DuplicationFactory();2var duplication = duplicationFactory.Instantiate("1,2,3,4,5,6,7,8,9,10");3var duplication2 = duplicationFactory.Instantiate("1,2,3,4,5,6,7,8,9,10");4duplication.Execute(resultSet);5duplication2.Execute(resultSet);6var duplicationFactory = new DuplicationFactory();7var duplication = duplicationFactory.Instantiate("1,2,3,4,5,6,7,8,9,10");8var duplication2 = duplicationFactory.Instantiate("1,2,3,4,5,6,7,8,9,10");9duplication.Execute(resultSet);10duplication2.Execute(resultSet);11var duplicationFactory = new DuplicationFactory();12var duplication = duplicationFactory.Instantiate("1,2,3,4,5,6,7,8,9,10");13var duplication2 = duplicationFactory.Instantiate("1,2,3,4,5,6,7,8,9,10");14duplication.Execute(resultSet);15duplication2.Execute(resultSet);16var duplicationFactory = new DuplicationFactory();17var duplication = duplicationFactory.Instantiate("1,2,3,4,5,6,7,8,9,10");18var duplication2 = duplicationFactory.Instantiate("1,2,3,4,5,6,7,8,9,10");19duplication.Execute(resultSet);20duplication2.Execute(resultSet);21var duplicationFactory = new DuplicationFactory();22var duplication = duplicationFactory.Instantiate("1,2,3,4,5,6,7,8,9,10");23var duplication2 = duplicationFactory.Instantiate("1,2,3,4,5,6,7,8,9,10");24duplication.Execute(resultSet);Instantiate
Using AI Code Generation
1var factory = new DuplicationFactory();2var duplication = factory.Instantiate();3duplication.Initialize(2);4duplication.Execute(resultSet);5var duplication = new Duplication(2);6duplication.Execute(resultSet);7var duplication = new Duplication(2);8duplication.Execute(resultSet);9var factory = new DuplicationFactory();10var duplication = factory.Instantiate();11duplication.Initialize(2);12duplication.Execute(resultSet);13var duplication = new Duplication(2);14duplication.Execute(resultSet);15var duplication = new Duplication(1);16duplication.Execute(resultSet);17var duplication = new Duplication(0);18duplication.Execute(resultSet);19var duplication = new Duplication(-1);20duplication.Execute(resultSet);21var duplication = new Duplication(-2);22duplication.Execute(resultSet);23var duplication = new Duplication(-3);24duplication.Execute(resultSet);25var duplication = new Duplication(-4);26duplication.Execute(resultSet);27var duplication = new Duplication(-5);28duplication.Execute(resultSet);29var duplication = new Duplication(-6);Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!
