// Token: 0x06000012 RID: 18 RVA: 0x000029F4 File Offset: 0x00000BF4 internal static T[] CreateAssistantTypes <T>(InfoworkerAssistants.AssistantConstructor <T>[] assistantTypes) { List <T> list = new List <T>(); foreach (InfoworkerAssistants.AssistantConstructor <T> assistantConstructor in assistantTypes) { if (!InfoworkerAssistants.IsDisabled(assistantConstructor.Name) && (assistantConstructor.IsEnabledDelegate == null || assistantConstructor.IsEnabledDelegate())) { bool flag = false; Globals.Logger.LogEvent(InfoWorkerEventLogConstants.Tuple_CreatingAssistant, null, new object[] { assistantConstructor.Name }); try { list.Add(assistantConstructor.ConstructorDelegate()); flag = true; } finally { if (!flag) { Globals.Logger.LogEvent(InfoWorkerEventLogConstants.Tuple_FailCreateAssistant, null, new object[] { assistantConstructor.Name }); } } InfoworkerAssistants.TracerPfd.TracePfd <int, string>(3L, "PFD IWS {0} Assistant {1} is Enabled", 18839, assistantConstructor.Name); } else { Globals.Logger.LogEvent(InfoWorkerEventLogConstants.Tuple_DisabledAssistant, null, new object[] { assistantConstructor.Name }); } } return(list.ToArray()); }
// Token: 0x06000011 RID: 17 RVA: 0x000028D4 File Offset: 0x00000AD4 internal static void DeleteWatermarksForDisabledAndDeprecatedAssistants(object stateNotUsed) { List <Guid> disabledEventAssistants = new List <Guid>(InfoworkerAssistants.EventBasedAssistantTypes.Length); foreach (InfoworkerAssistants.EventAssistantConstructor eventAssistantConstructor in InfoworkerAssistants.EventBasedAssistantTypes) { if (InfoworkerAssistants.IsDisabled(eventAssistantConstructor.Name)) { ExTraceGlobals.AssistantBaseTracer.TraceDebug <string>(0L, "[InfoworkerAssistants]: Event assistant '{0}' is disabled.", eventAssistantConstructor.Name); disabledEventAssistants.Add(eventAssistantConstructor.Identity); } } disabledEventAssistants.AddRange(InfoworkerAssistants.deprecatedAssistants); if (disabledEventAssistants.Count == 0) { ExTraceGlobals.AssistantBaseTracer.TraceDebug(0L, "[InfoworkerAssistants]: There are no disabled or deprecated assistants."); return; } ExTraceGlobals.AssistantBaseTracer.TraceDebug <int>(0L, "[InfoworkerAssistants]: There are {0} disabled and/or deprecated assistants.", disabledEventAssistants.Count); Exception exception = null; try { GrayException.MapAndReportGrayExceptions(delegate() { try { using (ExRpcAdmin exRpcAdmin = ExRpcAdmin.Create("Client=EBA", null, null, null, null)) { MdbStatus[] array = exRpcAdmin.ListMdbStatus(false); foreach (MdbStatus mdbStatus in array) { if (DatabaseManager.IsOnlineDatabase(mdbStatus)) { foreach (Guid guid in disabledEventAssistants) { MapiEventManager mapiEventManager = MapiEventManager.Create(exRpcAdmin, guid, mdbStatus.MdbGuid); ExTraceGlobals.AssistantBaseTracer.TraceDebug <Guid, string>(0L, "[InfoworkerAssistants]: Deleting watermarks for consumer {0} on database {1}.", guid, mdbStatus.MdbName); mapiEventManager.DeleteWatermarks(); } } } } } catch (MapiExceptionVersion exception2) { exception = exception2; } catch (MapiExceptionMdbOffline exception3) { exception = exception3; } catch (MapiExceptionExiting exception4) { exception = exception4; } catch (MapiExceptionNetworkError exception5) { exception = exception5; } catch (MapiExceptionADUnavailable exception6) { exception = exception6; } catch (MapiExceptionNoAccess exception7) { exception = exception7; } }); } catch (GrayException exception) { GrayException exception8; exception = exception8; } if (exception != null) { ExTraceGlobals.AssistantBaseTracer.TraceError <Exception>(0L, "[InfoworkerAssistants]: Failed to cleanup the watermarks at this time. Exception: {0}", exception); } }