// Token: 0x06001B7C RID: 7036 RVA: 0x000693C4 File Offset: 0x000675C4
        protected override AddMembersToUnifiedGroupResponse InternalExecute()
        {
            AddMembersToUnifiedGroupResponse addMembersToUnifiedGroupResponse = new AddMembersToUnifiedGroupResponse();
            Stopwatch stopwatch = new Stopwatch();

            try
            {
                stopwatch.Start();
                UpdateUnifiedGroupTask updateUnifiedGroupTask = new UpdateUnifiedGroupTask(base.CallContext.AccessingADUser, base.CallContext.AccessingPrincipal, base.CallContext.ADRecipientSessionContext.GetADRecipientSession());
                updateUnifiedGroupTask.ExternalDirectoryObjectId = this.request.ExternalDirectoryObjectId.ToString();
                updateUnifiedGroupTask.AddedMembers = this.request.AddedMembers;
                base.CallContext.ProtocolLog.Set(CreateModernGroupCommandMetadata.MemberCount, this.request.AddedMembers.Length);
                if (!updateUnifiedGroupTask.Run())
                {
                    base.CallContext.ProtocolLog.Set(CreateModernGroupCommandMetadata.Exception, updateUnifiedGroupTask.ErrorException);
                    base.CallContext.ProtocolLog.Set(CreateModernGroupCommandMetadata.ExceptionType, updateUnifiedGroupTask.ErrorException.GetType());
                    base.CallContext.ProtocolLog.Set(CreateModernGroupCommandMetadata.ErrorAction, updateUnifiedGroupTask.ErrorAction);
                    if (!string.IsNullOrEmpty(updateUnifiedGroupTask.ErrorCode))
                    {
                        base.CallContext.ProtocolLog.Set(CreateModernGroupCommandMetadata.ErrorCode, updateUnifiedGroupTask.ErrorCode);
                    }
                    UnifiedGroupsTask.UnifiedGroupsAction errorAction = updateUnifiedGroupTask.ErrorAction;
                    if (errorAction == UnifiedGroupsTask.UnifiedGroupsAction.AADUpdate)
                    {
                        throw new InternalServerErrorException(updateUnifiedGroupTask.ErrorException);
                    }
                    if (errorAction == UnifiedGroupsTask.UnifiedGroupsAction.ExchangeUpdate)
                    {
                        addMembersToUnifiedGroupResponse.ErrorState = UnifiedGroupResponseErrorState.FailedMailbox;
                        addMembersToUnifiedGroupResponse.Error      = updateUnifiedGroupTask.ErrorException.ToString();
                        base.CallContext.ProtocolLog.Set(ServiceCommonMetadata.GenericErrors, updateUnifiedGroupTask.ErrorException);
                    }
                }
            }
            finally
            {
                base.CallContext.ProtocolLog.Set(CreateModernGroupCommandMetadata.TotalProcessingTime, stopwatch.Elapsed.TotalSeconds.ToString("n2"));
            }
            return(addMembersToUnifiedGroupResponse);
        }
        // Token: 0x06001B77 RID: 7031 RVA: 0x00068CD8 File Offset: 0x00066ED8
        protected override CreateUnifiedGroupResponse InternalExecute()
        {
            CreateUnifiedGroupResponse createUnifiedGroupResponse = new CreateUnifiedGroupResponse();

            if (!this.IsModernGroupUnique())
            {
                throw FaultExceptionUtilities.CreateAvailabilityFault(new UnifiedGroupAlreadyExistsException(), FaultParty.Sender);
            }
            Stopwatch stopwatch = new Stopwatch();

            try
            {
                stopwatch.Start();
                CreateUnifiedGroupTask task = new CreateUnifiedGroupTask(base.CallContext.AccessingADUser, base.CallContext.AccessingPrincipal, base.CallContext.ADRecipientSessionContext.GetADRecipientSession());
                task.Name         = this.request.Name;
                task.Alias        = this.request.Alias;
                task.Description  = this.request.Description;
                task.Type         = ((this.request.GroupType == ModernGroupObjectType.Public) ? ModernGroupTypeInfo.Public : ModernGroupTypeInfo.Private);
                task.AADComplete += delegate()
                {
                    this.PushCreatedPersona(task.ExternalDirectoryObjectId);
                };
                task.AutoSubscribeNewGroupMembers = new bool?(this.request.AutoSubscribeNewGroupMembers);
                task.Language = this.request.Language;
                IFeature autoSubscribeSetByDefault    = VariantConfiguration.GetSnapshot(base.CallContext.AccessingPrincipal.GetContext(null), null, null).OwaClientServer.AutoSubscribeSetByDefault;
                IFeature autoSubscribeNewGroupMembers = VariantConfiguration.GetSnapshot(base.CallContext.AccessingPrincipal.GetContext(null), null, null).OwaClientServer.AutoSubscribeNewGroupMembers;
                if (autoSubscribeNewGroupMembers != null && autoSubscribeNewGroupMembers.Enabled && autoSubscribeSetByDefault != null)
                {
                    base.CallContext.ProtocolLog.Set(CreateModernGroupCommandMetadata.AutoSubscribeOptionDefault, autoSubscribeSetByDefault.Enabled);
                    base.CallContext.ProtocolLog.Set(CreateModernGroupCommandMetadata.AutoSubscribeOptionReceived, this.request.AutoSubscribeNewGroupMembers);
                }
                base.CallContext.ProtocolLog.Set(CreateModernGroupCommandMetadata.DescriptionSpecified, (!string.IsNullOrEmpty(this.request.Description)) ? 1 : 0);
                if (!task.Run())
                {
                    base.CallContext.ProtocolLog.Set(CreateModernGroupCommandMetadata.Exception, task.ErrorException);
                    base.CallContext.ProtocolLog.Set(CreateModernGroupCommandMetadata.ExceptionType, task.ErrorException.GetType());
                    base.CallContext.ProtocolLog.Set(CreateModernGroupCommandMetadata.ErrorAction, task.ErrorAction);
                    if (!string.IsNullOrEmpty(task.ErrorCode))
                    {
                        base.CallContext.ProtocolLog.Set(CreateModernGroupCommandMetadata.ErrorCode, task.ErrorCode);
                    }
                    UnifiedGroupsTask.UnifiedGroupsAction errorAction = task.ErrorAction;
                    if (errorAction == UnifiedGroupsTask.UnifiedGroupsAction.AADCreate)
                    {
                        base.CallContext.ProtocolLog.Set(CreateModernGroupCommandMetadata.ExceptionLocation, "AAD");
                        throw new InternalServerErrorException(task.ErrorException);
                    }
                    if (errorAction != UnifiedGroupsTask.UnifiedGroupsAction.ExchangeCreate)
                    {
                        base.CallContext.ProtocolLog.Set(CreateModernGroupCommandMetadata.ExceptionLocation, "Unknown");
                        throw new InvalidOperationException("Unexpected error action: " + task.ErrorAction, task.ErrorException);
                    }
                    base.CallContext.ProtocolLog.Set(CreateModernGroupCommandMetadata.ExceptionLocation, "Mailbox");
                    base.CallContext.ProtocolLog.Set(ServiceCommonMetadata.GenericErrors, task.ErrorException);
                    createUnifiedGroupResponse.Error        = "Provision failed for group " + this.request.Alias;
                    createUnifiedGroupResponse.FailureState = CreateUnifiedGroupResponse.GroupProvisionFailureState.FailedMailboxProvision;
                }
                else
                {
                    Persona persona = new Persona
                    {
                        ADObjectId   = task.ADObjectGuid,
                        Alias        = this.request.Alias,
                        DisplayName  = this.request.Name,
                        EmailAddress = new EmailAddressWrapper
                        {
                            EmailAddress = task.SmtpAddress,
                            MailboxType  = MailboxHelper.MailboxTypeType.GroupMailbox.ToString()
                        }
                    };
                    createUnifiedGroupResponse.Persona = persona;
                    createUnifiedGroupResponse.ExternalDirectoryObjectId = task.ExternalDirectoryObjectId;
                    base.CallContext.ProtocolLog.Set(CreateModernGroupCommandMetadata.GroupSmtpAddress, ExtensibleLogger.FormatPIIValue(task.SmtpAddress));
                }
                this.LogElapsedTime(CreateModernGroupCommandMetadata.GroupCreationTime, task.CreationDiagnostics.GroupCreationTime);
                this.LogElapsedTime(CreateModernGroupCommandMetadata.AADIdentityCreationTime, task.CreationDiagnostics.AADIdentityCreationTime);
                this.LogElapsedTime(CreateModernGroupCommandMetadata.AADCompleteCallbackTime, task.CreationDiagnostics.AADCompleteCallbackTime);
                this.LogElapsedTime(CreateModernGroupCommandMetadata.SharePointNotificationTime, task.CreationDiagnostics.SharePointNotificationTime);
                this.LogElapsedTime(CreateModernGroupCommandMetadata.MailboxCreationTime, task.CreationDiagnostics.MailboxCreationTime);
            }
            finally
            {
                this.LogElapsedTime(CreateModernGroupCommandMetadata.TotalProcessingTime, new TimeSpan?(stopwatch.Elapsed));
            }
            return(createUnifiedGroupResponse);
        }