public void Bind(IOpeningCondition oc, IClosingCondition cc, ISubject window) { Bind(oc, cc); var key = Tuple.Create(oc, cc); if (OCToSs.ContainsKey(key) == false) { OCToSs.Add(key, new List <ISubject>()); } if (!OCToSs[key].Contains(window)) { OCToSs[key].Add(window); } }
private void TestSubjects() { OCSResults = OCToSs.GroupBy(kvp => kvp.Key.Item1) .Select(gO => Tuple.Create( gO.Key, // open cond gO.Select(kvp => Tuple.Create( kvp.Key.Item2, // close cond kvp.Value.Select(subject => Tuple.Create( subject, // subject OCResults[gO.Key][kvp.Key.Item2].Select(subject.GetResult) .ToArray() // calc window's subject )).ToDictionary(t => t.Item1, t => t.Item2) )).ToDictionary(t => t.Item1, t => t.Item2) )).ToDictionary(t => t.Item1, t => t.Item2); }