public LatencyStatistics?GetElapsedTime(GroupMailboxConfigurationAction action) { if (!this.ConfigurationActionLatencyStatistics.ContainsKey(action)) { return(null); } return(new LatencyStatistics?(this.ConfigurationActionLatencyStatistics[action])); }
public GroupMailboxConfigurationReport Execute(GroupMailboxConfigurationAction forceActionMask) { this.report = new GroupMailboxConfigurationReport(); if (this.group.IsGroupMailboxConfigured && forceActionMask == GroupMailboxConfigurationAction.None) { return(this.report); } Predicate <GroupMailboxConfigurationAction> condition = (GroupMailboxConfigurationAction action) => !this.group.IsGroupMailboxConfigured || forceActionMask.Contains(action); this.ExecuteIf(condition, GroupMailboxConfigurationAction.SetRegionalSettings, new Action(this.SetRegionalConfiguration)); this.ExecuteIf(condition, GroupMailboxConfigurationAction.CreateDefaultFolders, new Action(this.CreateDefaultFolders)); this.ExecuteIf((GroupMailboxConfigurationAction actionType) => !this.group.IsGroupMailboxConfigured, GroupMailboxConfigurationAction.SetInitialFolderPermissions, new Action(this.SetFolderPermissions)); this.ExecuteIf(condition, GroupMailboxConfigurationAction.ConfigureCalendar, new Action(this.ConfigureCalendar)); this.ExecuteIf((GroupMailboxConfigurationAction actionType) => !this.group.IsGroupMailboxConfigured, GroupMailboxConfigurationAction.GenerateGroupPhoto, new Action(this.UploadPhoto)); this.ExecuteIf(condition, GroupMailboxConfigurationAction.SendWelcomeMessage, new Action(this.SendWelcomeMessage)); this.MarkGroupConfigured(); return(this.report); }
private void ExecuteIf(Predicate <GroupMailboxConfigurationAction> condition, GroupMailboxConfigurationAction actionType, Action action) { if (condition(actionType)) { using (new GroupMailboxConfigurationActionStopwatch(this.report, actionType)) { action(); } } }
internal static bool Contains(this GroupMailboxConfigurationAction groupMailboxConfigurationActionMask, GroupMailboxConfigurationAction flag) { return((groupMailboxConfigurationActionMask & flag) != GroupMailboxConfigurationAction.None); }
public GroupMailboxConfigurationActionStopwatch(GroupMailboxConfigurationReport report, GroupMailboxConfigurationAction actionType) { this.report = report; this.actionType = actionType; this.activityScope = ActivityContext.GetCurrentActivityScope(); this.stopwatch = Stopwatch.StartNew(); this.initialLatencyStatistics = this.CreateLatencyStatisticsSnapshot(); }