public ContinuousSecurityList(StudioEntityRegistry registry) { _registry = registry; _jumps = new JumpList(_registry.Storage) { BulkLoad = true }; foreach (var group in _jumps.GroupBy(j => j.Id.ContinuousSecurity)) { group.ForEach(s => s.Id.JumpSecurity.CheckExchange()); var underlyingSecurity = group.First().Id.JumpSecurity; var cs = new ContinuousSecurity { Id = group.Key, Board = underlyingSecurity.Board, Type = underlyingSecurity.Type, PriceStep = underlyingSecurity.PriceStep, ExtensionInfo = new Dictionary <object, object>(), }; cs.ExpirationJumps.AddRange(group.Select(j => new KeyValuePair <Security, DateTimeOffset>(j.Id.JumpSecurity, j.JumpDate))); Add(cs); } }