public void Start(JobbingStockBase stockBase, KiteConnect.Kite kite) { if (stockBase.Status == JobbingStatus.NotStarted) { var clonedObject = stockBase.CloneObject() as JobbingStockBase; if (!_jobbingStocks.Any(s => s.Symbol == clonedObject.Symbol && s.Exchange == clonedObject.Exchange)) { _jobbingStocks.Add(clonedObject); } var stock = _jobbingStocks.FirstOrDefault(s => s.Symbol == clonedObject.Symbol && s.Exchange == clonedObject.Exchange); if (stock != null) { stock.Start(kite); } } else { Stop(stockBase.Symbol, stockBase.Exchange); } }