internal void AddComponent(ETLCoreComponent component) { #if DEBUG component.OnCompleted.Subscribe(c => { Debug.WriteLine($"The Component {c.Item1.Id} in Job:{this.Id} is completed"); }); #endif _components.Add(component); }
public T GetService <T>() { Contract.Ensures(Contract.Result <T>() != null, $"The service {nameof(T)} has not been registered.Check your configuration"); Contract.EndContractBlock(); T service = Provider.GetService <T>(); if (service.IsTypeof <ETLCoreComponent>()) { ETLCoreComponent cmp = service as ETLCoreComponent; if (!_serviceCounter.ContainsKey(typeof(T))) { _serviceCounter[typeof(T)] = 1; } else { _serviceCounter[typeof(T)]++; } var name = Regex.Replace(typeof(T).Name, "`[0-9]*", ""); cmp.Name = $"{name}-{ _serviceCounter[typeof(T)]}"; } return(service); }
internal static void RegisterComponentForEvents(this ETLCoreComponent c, IScheduler scheduler) { c.OnStart.SubscribeOn(scheduler).Subscribe(OnComponentStart); c.OnError.SubscribeOn(scheduler).Subscribe(OnError); c.OnCompleted.SubscribeOn(scheduler).Subscribe(OnComponentCompleted); }
private void RegisterComponentForEvents(ETLCoreComponent c) { c.OnStart.SubscribeOn(scheduler).Subscribe(OnComponentStart); c.OnError.SubscribeOn(scheduler).Subscribe(OnError); c.OnCompleted.SubscribeOn(scheduler).Subscribe(OnComponentCompleted); }