protected PowerShellResults <L> SetObject <O, U, L>(string setCmdlet, Identity identity, U properties, Identity identityForGetCmdlet) where O : L where U : SetObjectProperties { EcpPerfCounters.WebServiceSetObject.Increment(); identity.FaultIfNull(); properties.FaultIfNull(); PowerShellResults <L> powerShellResults = new PowerShellResults <L>(); properties.IgnoreNullOrEmpty = false; if (properties.Any <KeyValuePair <string, object> >()) { powerShellResults = this.CoreInvoke <L>(new PSCommand().AddCommand(setCmdlet), identity.ToPipelineInput(), identity, properties); } if (powerShellResults.Succeeded && null != identityForGetCmdlet) { PowerShellResults <L> powerShellResults2 = null; if (properties.ReturnObjectType == ReturnObjectTypes.Full && this is IGetObjectService <O> ) { IGetObjectService <O> getObjectService = this as IGetObjectService <O>; PowerShellResults <O> @object = getObjectService.GetObject(identityForGetCmdlet); powerShellResults2 = new PowerShellResults <L>(); powerShellResults2.MergeOutput(@object.Output.Cast <L>().ToArray <L>()); powerShellResults2.MergeErrors <O>(@object); } else if (properties.ReturnObjectType == ReturnObjectTypes.PartialForList && this is IGetObjectForListService <L> ) { IGetObjectForListService <L> getObjectForListService = this as IGetObjectForListService <L>; powerShellResults2 = getObjectForListService.GetObjectForList(identityForGetCmdlet); } if (powerShellResults2 != null) { powerShellResults.MergeAll(powerShellResults2); } } return(powerShellResults); }
public PowerShellResults <EndUserRoleRow> GetAssignedEndUserRoles(RoleAssignmentPolicyFilter filter, SortOptions sort) { PowerShellResults <RoleAssignmentPolicy> @object = this.GetObject(filter.Policy); PowerShellResults <EndUserRoleRow> powerShellResults = new PowerShellResults <EndUserRoleRow> { ErrorRecords = @object.ErrorRecords, Warnings = @object.Warnings }; if (@object.SucceededWithValue) { EndUserRoles endUserRoles = new EndUserRoles(); powerShellResults.MergeAll(endUserRoles.GetList(null, null)); if (powerShellResults.Succeeded) { List <EndUserRoleRow> list = new List <EndUserRoleRow>(); foreach (EndUserRoleRow endUserRoleRow in powerShellResults.Output) { if (@object.Value.AssignedEndUserRoles.Contains(endUserRoleRow.Identity)) { list.Add(endUserRoleRow); } } powerShellResults.Output = list.ToArray(); } } return(powerShellResults); }
public PowerShellResults <GetVoiceMailConfiguration> SetObject(Identity identity, SetVoiceMailConfiguration properties) { properties.FaultIfNull(); identity = Identity.FromExecutingUserId(); PowerShellResults <GetVoiceMailConfiguration> powerShellResults = new PowerShellResults <GetVoiceMailConfiguration>(); PowerShellResults <GetVoiceMailConfiguration> @object = this.GetObject(identity); powerShellResults.MergeErrors <GetVoiceMailConfiguration>(@object); if (powerShellResults.Failed) { return(powerShellResults); } powerShellResults.MergeErrors <UMMailboxPin>(base.SetObject <UMMailboxPin, SetVoiceMailPIN>("Set-UMMailboxPIN", identity, properties.SetVoiceMailPIN)); if (powerShellResults.Failed) { return(powerShellResults); } properties.ReturnObjectType = ReturnObjectTypes.Full; powerShellResults.MergeAll(base.SetObject <GetVoiceMailConfiguration, SetVoiceMailConfiguration>("Set-UMMailbox", identity, properties)); if (powerShellResults.SucceededWithValue) { GetVoiceMailConfiguration value = powerShellResults.Value; RbacPrincipal.Current.RbacConfiguration.ExecutingUserIsUmConfigured = value.IsConfigured; if (this.IsPhoneVerified(value.PhoneNumber, value) && !string.IsNullOrEmpty(properties.PhoneProviderId)) { PowerShellResults <SmsOptions> results = this.SetTextMessagingAccount(identity, value.PhoneNumber, value.PhoneProviderId, value); powerShellResults.MergeErrors <SmsOptions>(results); } } return(powerShellResults); }
public PowerShellResults <JournalReportNdrTo> SetObject(Identity identity, SetJournalReportNdrTo properties) { PowerShellResults <JournalReportNdrTo> powerShellResults = new PowerShellResults <JournalReportNdrTo>(); properties.IgnoreNullOrEmpty = false; if (properties.Any <KeyValuePair <string, object> >()) { PSCommand psCommand = new PSCommand().AddCommand("Set-TransportConfig"); psCommand.AddParameters(properties); PowerShellResults <JournalReportNdrTo> results = base.Invoke <JournalReportNdrTo>(psCommand); powerShellResults.MergeAll(results); } if (powerShellResults.Succeeded) { powerShellResults.MergeAll(this.GetObject(identity)); } return(powerShellResults); }
public PowerShellResults <SchedulingOptionsConfiguration> SetObject(Identity identity, SetSchedulingOptionsConfiguration properties) { properties.FaultIfNull(); PowerShellResults <SchedulingOptionsConfiguration> powerShellResults = new PowerShellResults <SchedulingOptionsConfiguration>(); powerShellResults.MergeErrors <CalendarConfiguration>(base.SetObject <CalendarConfiguration, SetMailboxCalendarConfiguration>("Set-MailboxCalendarConfiguration", Identity.FromExecutingUserId(), properties.SetMailboxCalendarConfiguration)); if (powerShellResults.Failed) { return(powerShellResults); } powerShellResults.MergeAll(base.SetObject <SchedulingOptionsConfiguration, SetSchedulingOptionsConfiguration>(identity, properties)); return(powerShellResults); }
public PowerShellResults <SupervisionStatus> SetObject(Identity identity, SetSupervisionStatus properties) { identity = Identity.FromExecutingUserId(); properties.FaultIfNull(); PowerShellResults <SupervisionStatus> powerShellResults = new PowerShellResults <SupervisionStatus>(); powerShellResults.MergeErrors <SupervisionStatus>(base.SetObject <SupervisionStatus, SetSupervisionStatus>("Set-SupervisionPolicy", identity, properties)); if (powerShellResults.Failed) { return(powerShellResults); } powerShellResults.MergeAll(base.SetObject <SupervisionStatus, SetClosedCampusOutboundPolicyConfiguration>("Set-SupervisionPolicy", identity, properties.MyClosedCampusOutboundPolicyConfiguration)); return(powerShellResults); }
protected PowerShellResults <O> InvokeAndGetObject <O>(PSCommand psCommand, Identity[] identities, WebServiceParameters parameters) where O : BaseRow { PowerShellResults <O> powerShellResults = new PowerShellResults <O>(); powerShellResults.MergeErrors(this.Invoke(psCommand, identities, parameters)); if (powerShellResults.Succeeded && identities.Length <= 5) { IGetObjectForListService <O> getObjectForListService = this as IGetObjectForListService <O>; Func <Identity, PowerShellResults <O> > func; if (getObjectForListService != null) { func = ((Identity x) => getObjectForListService.GetObjectForList(x)); } else { IGetObjectService <O> getObjectService = this as IGetObjectService <O>; if (getObjectService == null) { throw new Exception("Either IGetObjectForListService or IGetObjectService must be implemented for single row refresh."); } func = ((Identity x) => getObjectService.GetObject(x)); } PowerShellResults <O> powerShellResults2 = new PowerShellResults <O>(); try { for (int i = 0; i < identities.Length; i++) { powerShellResults2.MergeAll(func(identities[i])); if (powerShellResults2.Failed) { break; } } } catch (SecurityException) { if (powerShellResults2.HasValue) { throw; } } if (powerShellResults2.SucceededWithValue) { powerShellResults.MergeAll(powerShellResults2); } } return(powerShellResults); }
public PowerShellResults <ActiveSyncSettings> SetObject(Identity identity, SetActiveSyncSettings properties) { properties.FaultIfNull(); properties.IgnoreNullOrEmpty = false; PowerShellResults <ActiveSyncSettings> powerShellResults = base.Invoke <ActiveSyncSettings>(new PSCommand().AddCommand("Set-ActiveSyncOrganizationSettings").AddParameters(properties)); if (powerShellResults.Succeeded) { PowerShellResults <ActiveSyncSettings> @object = this.GetObject(null); if (@object != null) { powerShellResults.MergeAll(@object); } } return(powerShellResults); }
private PowerShellResults <SmsOptions> SetTextMessagingAccount(Identity identity, string phoneNumber, string phoneProviderId, GetVoiceMailConfiguration voiceMailConfig) { SetSmsOptions setSmsOptions = new SetSmsOptions(); setSmsOptions.CountryCode = "+" + voiceMailConfig.CountryOrRegionCode; setSmsOptions.CountryRegionId = voiceMailConfig.CountryOrRegionId; setSmsOptions.MobileOperatorId = phoneProviderId; setSmsOptions.NotificationPhoneNumber = setSmsOptions.CountryCode + phoneNumber; setSmsOptions.VerificationCode = null; PowerShellResults <SmsOptions> powerShellResults = new PowerShellResults <SmsOptions>(); PowerShellResults results = base.SetObject <SmsOptions, SetSmsOptions>("Set-TextMessagingAccount", identity, setSmsOptions); powerShellResults.MergeErrors(results); if (powerShellResults.Succeeded) { powerShellResults.MergeAll(base.GetObject <SmsOptions>("Get-TextMessagingAccount", identity)); } return(powerShellResults); }
public PowerShellResults <MailboxRecipientRow> SetObject(Identity identity, SetAccount properties) { PowerShellResults <MailboxRecipientRow> powerShellResults = new PowerShellResults <MailboxRecipientRow>(); bool flag = identity == null || StringComparer.OrdinalIgnoreCase.Equals(identity.RawIdentity, Identity.FromExecutingUserId().RawIdentity); identity = (identity ?? Identity.FromExecutingUserId()); properties.FaultIfNull(); if (properties.SetMailbox.EmailAddresses != null || properties.SetMailbox.MailTip != null || properties.SetMailbox.RoleAssignmentPolicy != null || properties.SetMailbox.RetentionPolicy != null || properties.SetMailbox.MailboxPlan != null || properties.SetMailbox.ResourceCapacity != null || properties.SetMailbox.LitigationHoldEnabled != null || properties.SetMailbox.RetentionComment != null || properties.SetMailbox.RetentionUrl != null) { if (properties.SetMailbox.EmailAddresses != null) { PowerShellResults <Account> @object = base.GetObject <Account>("Get-Mailbox", identity); powerShellResults.MergeErrors <Account>(@object); if (@object.HasValue) { properties.SetMailbox.UpdateEmailAddresses(@object.Output[0].Mailbox); } } if (properties.SetMailbox.ResourceCapacity != null && string.IsNullOrEmpty(properties.SetMailbox.ResourceCapacity)) { properties.SetMailbox.ResourceCapacity = null; } if (properties.SetMailbox.RetentionPolicy != null && string.IsNullOrEmpty(properties.SetMailbox.RetentionPolicy)) { properties.SetMailbox.RetentionPolicy = null; } powerShellResults.MergeErrors <Mailbox>(base.SetObject <Mailbox, SetMailbox>("Set-Mailbox", identity, properties.SetMailbox)); if (powerShellResults.Failed) { return(powerShellResults); } } bool flag2 = RbacPrincipal.Current.IsInRole("Get-User?Identity@R:Organization+Get-Mailbox?Identity@R:Organization+Add-SupervisionListEntry?Identity@W:Organization+Remove-SupervisionListEntry?Identity@W:Organization") || RbacPrincipal.Current.IsInRole("Get-User?Identity@R:Organization+Get-Mailbox?Identity@R:Organization+Add-SupervisionListEntry?Identity@W:Self+Remove-SupervisionListEntry?Identity@W:Self"); if (flag2) { powerShellResults = this.UpdateSupervisionBlockAllowLists(identity, properties, powerShellResults); if (powerShellResults.Failed) { return(powerShellResults); } } powerShellResults.MergeAll(base.SetObject <Account, SetAccount, MailboxRecipientRow>("Set-User", identity, properties)); if (powerShellResults.SucceededWithValue && powerShellResults.Value.IsRoom) { properties.SetCalendarProcessing.UpdateResourceObjects(); if (properties.AutomaticBooking != null || properties.ResourceDelegates != null) { powerShellResults.MergeErrors <CalendarConfiguration>(base.SetObject <CalendarConfiguration, SetCalendarProcessing>("Set-CalendarProcessing", identity, properties.SetCalendarProcessing)); } } if (properties.EnableUM != null && properties.EnableUM == false) { powerShellResults.MergeErrors(new UMMailboxService().RemoveObjects(new Identity[] { identity }, null)); } if (properties.EnableLitigationHold != null && properties.EnableLitigationHold == false) { PSCommand pscommand = new PSCommand(); pscommand.AddCommand("Set-Mailbox"); pscommand.AddParameter("Identity", identity); pscommand.AddParameter("LitigationHoldEnabled", false); powerShellResults.MergeErrors <Mailbox>(base.Invoke <Mailbox>(pscommand)); } if (RbacPrincipal.Current.IsInRole("Set-CasMailbox?Identity@W:Self|Organization")) { powerShellResults.MergeErrors <CASMailbox>(base.SetObject <CASMailbox, SetCasMailbox>("Set-CasMailbox", identity, properties.SetCasMailbox)); } if (flag && powerShellResults.SucceededWithValue) { RbacPrincipal.Current.Name = powerShellResults.Value.DisplayName; } return(powerShellResults); }
protected PowerShellResults <DistributionGroupRow> SetDistributionGroup <T, S, U>(Identity identity, T properties) where T : SetDistributionGroupBase <S, U> where S : SetGroupBase, new() where U : UpdateDistributionGroupMemberBase, new() { PowerShellResults <DistributionGroupRow> powerShellResults = new PowerShellResults <DistributionGroupRow>(); identity.FaultIfNull(); properties.FaultIfNull(); powerShellResults.MergeErrors <WindowsGroup>(base.SetObject <WindowsGroup, SetGroupBase>("Set-Group", identity, properties.SetGroup)); if (powerShellResults.Failed) { return(powerShellResults); } U updateDistributionGroupMember = properties.UpdateDistributionGroupMember; if (updateDistributionGroupMember.Members != null) { U updateDistributionGroupMember2 = properties.UpdateDistributionGroupMember; updateDistributionGroupMember2.IgnoreNullOrEmpty = false; powerShellResults.MergeErrors(base.Invoke(new PSCommand().AddCommand("Update-DistributionGroupMember"), new Identity[] { identity }, properties.UpdateDistributionGroupMember)); if (powerShellResults.Failed) { return(powerShellResults); } } if (RbacPrincipal.Current.IsInRole("Enterprise")) { if (properties.SendAsPermissionsEnterprise != null && !properties.SendAsPermissionsEnterprise.Added.IsNullOrEmpty()) { powerShellResults.MergeErrors(this.UpdateEnterpriseSendAsPermissions("Add-ADPermission", properties.SendAsPermissionsEnterprise.Added, new AddSendAsPermission { Identity = identity.RawIdentity })); if (powerShellResults.Failed) { return(powerShellResults); } } if (properties.SendAsPermissionsEnterprise != null && !properties.SendAsPermissionsEnterprise.Removed.IsNullOrEmpty()) { powerShellResults.MergeErrors(this.UpdateEnterpriseSendAsPermissions("Remove-ADPermission", properties.SendAsPermissionsEnterprise.Removed, new RemoveSendAsPermission { Identity = identity.RawIdentity })); if (powerShellResults.Failed) { return(powerShellResults); } } } else if (RbacPrincipal.Current.IsInRole("MultiTenant")) { if (properties.SendAsPermissionsCloud != null && !properties.SendAsPermissionsCloud.Added.IsNullOrEmpty()) { powerShellResults.MergeErrors(this.UpdateCloudSendAsPermissions("Add-RecipientPermission", properties.SendAsPermissionsCloud.Added, new AddCloudSendAsPermission { Identity = identity.RawIdentity })); if (powerShellResults.Failed) { return(powerShellResults); } } if (properties.SendAsPermissionsCloud != null && !properties.SendAsPermissionsCloud.Removed.IsNullOrEmpty()) { powerShellResults.MergeErrors(this.UpdateCloudSendAsPermissions("Remove-RecipientPermission", properties.SendAsPermissionsCloud.Removed, new AddCloudSendAsPermission { Identity = identity.RawIdentity })); if (powerShellResults.Failed) { return(powerShellResults); } } } powerShellResults.MergeAll(base.SetObject <DistributionGroup, T, DistributionGroupRow>("Set-DistributionGroup", identity, properties)); return(powerShellResults); }