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();
         }
     }
 }
Esempio n. 4
0
 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();
 }