//- @SortAllDynamic -// public void SortAllDynamic() { if (InitProcessorDataList.Count != InitProcessorDataList.OriginalCount) { InitProcessorDataList = new InitProcessorDataList(InitProcessorDataList.OrderBy(p => p.Priority).ToList()); } if (ProcessorFactoryDataList.Count != ProcessorFactoryDataList.OriginalCount) { ProcessorFactoryDataList = new ProcessorFactoryDataList(ProcessorFactoryDataList.OrderBy(p => p.Priority).ToList()); } if (HandlerFactoryDataList.Count != HandlerFactoryDataList.OriginalCount) { HandlerFactoryDataList = new EndpointFactoryDataList(HandlerFactoryDataList.OrderBy(p => p.Priority).ToList()); } if (SelectionProcessorDataList.Count != SelectionProcessorDataList.OriginalCount) { SelectionProcessorDataList = new SelectionProcessorDataList(SelectionProcessorDataList.OrderBy(p => p.Priority).ToList()); } if (OverrideProcessorDataList.Count != OverrideProcessorDataList.OriginalCount) { OverrideProcessorDataList = new OverrideProcessorDataList(OverrideProcessorDataList.OrderBy(p => p.Priority).ToList()); } if (StateProcessorDataList.Count != StateProcessorDataList.OriginalCount) { StateProcessorDataList = new StateProcessorDataList(StateProcessorDataList.OrderBy(p => p.Priority).ToList()); } if (PostRenderProcessorDataList.Count != PostRenderProcessorDataList.OriginalCount) { PostRenderProcessorDataList = new PostRenderProcessorDataList(PostRenderProcessorDataList.OrderBy(p => p.Priority).ToList()); } }
//- ~RunOverrideProcessing -// internal static IHttpHandler RunOverrideProcessing(IHttpHandler hh, HttpContext context, OverrideProcessorDataList dataList) { if (dataList.Count == 0) { return null; } foreach (ProcessorData data in dataList.OrderBy(p => p.Priority)) { String processorType = data.ProcessorType; //+ try { OverrideProcessor processor = null; //+ ProcessorReaderWriterLockSlim.EnterUpgradeableReadLock(); if (!RouteCache.ProcessorCache.ContainsKey(processorType)) { ProcessorReaderWriterLockSlim.EnterWriteLock(); //+ try { if (!RouteCache.ProcessorCache.ContainsKey(processorType)) { processor = ProcessorActivator.Create<OverrideProcessor>(processorType, RouteCache.ProcessorFactoryCache); if (processor == null) { throw new EntityNotFoundException(String.Format(Resource.General_NotFound, processorType)); } RouteCache.ProcessorCache.Add(processorType, processor); } } finally { ProcessorReaderWriterLockSlim.ExitWriteLock(); } } if (processor == null) { processor = RouteCache.ProcessorCache.Get<OverrideProcessor>(processorType); } //+ if (processor != null) { ProcessorReaderWriterLockSlim.EnterWriteLock(); //+ try { if (processor != null) { processor.Initialize(HttpContext.Current, data.ParameterArray); IHttpHandler handler = processor.Execute(hh); if (handler != null) { return handler; } } } finally { ProcessorReaderWriterLockSlim.ExitWriteLock(); } } } catch (Exception ex) { if (WebProcessingReportController.Reporter.Initialized) { var map = new Map(); map.Add("Section", "OverrideProcessor"); map.Add("Type", processorType); map.Add("Message", ex.Message); map.Add("Exception Type", ex.GetType().FullName); //+ WebProcessingReportController.Reporter.AddMap(map); } } finally { ProcessorReaderWriterLockSlim.ExitUpgradeableReadLock(); } } //+ return null; }