Example #1
0
        public static IBootstrapperAddOptionalParameters <T> AddContracts <T>([NotNull] this IBootstrapper <T> bootstrapper,
                                                                              [NotNull] IEnumerable <Contract <T> > contracts)
            where T : ITimePeriod <T>
        {
            if (bootstrapper == null)
            {
                throw new ArgumentNullException(nameof(bootstrapper));
            }
            if (contracts == null)
            {
                throw new ArgumentNullException(nameof(contracts));
            }

            var contractList = contracts.ToList();

            if (contractList.Count < 1)
            {
                throw new ArgumentException("contracts parameter must contain at least one element.", nameof(contracts));
            }

            IBootstrapperAddOptionalParameters <T> addOptionalParameters = bootstrapper.AddContract(contractList[0]);

            foreach (var contract in contractList.Skip(1))
            {
                addOptionalParameters = addOptionalParameters.AddContract(contract);
            }

            return(addOptionalParameters);
        }