/// <summary> /// Creates a copy of the current object /// </summary> /// <returns>The field clone</returns> public MergedField Clone() { var apiProvider = this.providers.First(); var field = this.OriginalFields[apiProvider.Description.ApiName]; var mergedField = new MergedField( this.FieldName, this.Type, apiProvider, field, this.Flags, this.Arguments, this.Description); mergedField.Resolver = this.Resolver; foreach (var provider in this.providers.Skip(1)) { mergedField.AddProvider(provider, this.OriginalFields[provider.Description.ApiName]); } return(mergedField); }
/// <summary> /// Initializes a new instance of the <see cref="MergedRoot"/> class. /// </summary> /// <param name="originalTypeName"> /// The original type name. /// </param> /// <param name="providers"> /// The providers. /// </param> /// <param name="root"> /// The root. /// </param> public MergedRoot(string originalTypeName, List <ApiProvider> providers, MergedApiRoot root) : base(originalTypeName) { if (providers == null || providers.Count == 0) { return; } this.searcher = root.NodeSearher; var apiField = new MergedField( "api", root, providers.First(), null, description: "The united api access"); foreach (var apiProvider in providers.Skip(1)) { apiField.AddProvider(apiProvider, null); } this.Fields["api"] = apiField; }