public void PutToPersistentInjectionQueue(string regionName, object key, Func <object> factory, string viewName, Type viewType) { foreach (InjectionItem item in PersistentInjectionQueue) { if (item.RegionName == regionName && object.Equals(item.Key, key)) { throw new InvalidOperationException(Exception2); } } PersistentInjectionQueue.Add(new InjectionItem(regionName, key, factory, viewName, viewType)); }
public void RemoveFromQueues(string regionName, object key) { var injectionItem = InjectionQueue.FirstOrDefault(x => x.RegionName == regionName && object.Equals(x.Key, key)); injectionItem.Do(x => InjectionQueue.Remove(x)); var persistentInjectionItem = PersistentInjectionQueue.FirstOrDefault(x => x.RegionName == regionName && object.Equals(x.Key, key)); persistentInjectionItem.Do(x => PersistentInjectionQueue.Remove(x)); var navigationItem = NavigationQueue.FirstOrDefault(x => x.RegionName == regionName && object.Equals(x.Key, key)); navigationItem.Do(x => NavigationQueue.Remove(x)); }