protected void ActivateCooker(ISourceDataCooker <T, TContext, TKey> sourceDataCooker)
        {
            Guard.NotNull(sourceDataCooker, nameof(sourceDataCooker));

            this.activeCookers.Add(sourceDataCooker);
            if (sourceDataCooker.Options.HasFlag(SourceDataCookerOptions.ReceiveAllDataElements))
            {
                this.activeReceiveAllDataCookers.Add(sourceDataCooker);
            }
        }
        public void RegisterSourceDataCooker(ISourceDataCooker <T, TContext, TKey> dataCooker)
        {
            Guard.NotNull(dataCooker, nameof(dataCooker));

            if (!StringComparer.Ordinal.Equals(dataCooker.Path.SourceParserId, SourceParser.Id))
            {
                throw new ArgumentException(
                          $"The {nameof(IDataCookerDescriptor.Path.SourceParserId)} of {nameof(dataCooker)} doesn't match "
                          + $"{nameof(SourceParser)}.",
                          nameof(dataCooker));
            }

            if (!this.cookerById.ContainsKey(dataCooker.Path))
            {
                this.cookerById[dataCooker.Path] = dataCooker;
                this.registeredCookers.Add(dataCooker);

                if (dataCooker.Options.HasFlag(SourceDataCookerOptions.ReceiveAllDataElements))
                {
                    this.receiveAllDataCookers.Add(dataCooker);
                }
            }
        }
Example #3
0
 public void RegisterSourceDataCooker(ISourceDataCooker <T, TContext, TKey> dataCooker)
 {
     this.RegisterSourceDataCookerAction?.Invoke(dataCooker);
 }
 /// <summary>
 /// Override to be notified when a source data cooker has been enabled for the session.
 /// </summary>
 /// <param name="sourceDataCooker">The cooker that was enabled.</param>
 protected virtual void OnDataCookerEnabled(ISourceDataCooker <T, TContext, TKey> sourceDataCooker)
 {
 }