public Provider GetOrCreateAccumulator(FramingPlan plan, Getter getter, ProjectionElement parent, ProjectionElement child, ParameterNames parameters) { var alreadyCreated = _cache.FirstOrDefault(k => k.Child == child && k.Parent == parent && k.Parameters == parameters); if (alreadyCreated != null) { return(alreadyCreated.Provider); } var storage = new GroupStorage(FrameNode.InPlanComparer); plan.AddTempStorage(storage); var pusher = CreatePusher(storage); var checker = CreateChecker(storage); var taker = CreateGetter(storage); var packTaker = CreatePackagerGetter(getter, parameters); var acc = new Provider(pusher, checker, taker, packTaker, FrameNode.InPlanComparer); var node = new FactoryNode { Parent = parent, Child = child, Parameters = parameters, Provider = acc }; _cache.Add(node); return(acc); }
public Registration this[string name] { get { return(_registrations.FirstOrDefault(k => k.ResourceName == name)); } }
public Product IndexedFirstOrDefault() { int id = _id = (_id + 1) % _maxId; return(_indexed.FirstOrDefault(p => p.Id == id)); }