Exemple #1
0
        private int AddContracts(RootConfig rootConfig, List<string> contracts, GenerateContractMode mode, bool internalVisibility)
        {
            if (!contracts.Any() || contracts.Any(c => c.EndsWith(".*", StringComparison.OrdinalIgnoreCase)))
            {
                try
                {
                    rootConfig.AddAllContracts(mode, internalVisibility);
                }
                catch (Exception e)
                {
                    return HandleError($"Failed to resolve contracts", e);
                }

                return 0;
            }

            foreach (var contract in contracts)
            {
                if (contract.EndsWith(".*", StringComparison.OrdinalIgnoreCase))
                {
                    var ns = contract.TrimEnd('*', '.');
                    try
                    {
                        rootConfig.AddContractsFromNamespace(ns, mode, internalVisibility);
                    }
                    catch (Exception e)
                    {
                        return HandleError($"Failed to resolve contracts: {contract.White().Bold()}", e);
                    }
                }
                else
                {
                    try
                    {
                        rootConfig.AddContract(contract, mode, internalVisibility);
                    }
                    catch (Exception e)
                    {
                        return HandleError($"Failed to resolve contract: {contract.White().Bold()}", e);
                    }
                }
            }

            return 0;
        }