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);
        }
        protected PowerShellResults <O> GetObject <O>(PSCommand psCommand, Identity identity)
        {
            EcpPerfCounters.WebServiceGetObject.Increment();
            identity.FaultIfNull();
            PowerShellResults <O> powerShellResults = this.CoreInvoke <O>(psCommand, identity.ToPipelineInput(), identity, null);

            if (powerShellResults.Output.Length > 1)
            {
                throw new SecurityException(Strings.ErrorManagementObjectAmbiguous(identity.DisplayName));
            }
            return(powerShellResults);
        }
Exemple #3
0
        public PowerShellResults <NavBarPack> GetObject(Identity identity)
        {
            identity.FaultIfNull();
            bool             showAdminFeature = identity.RawIdentity == "myorg";
            NavBarClientBase navBarClientBase = NavBarClientBase.Create(showAdminFeature, false, true);
            PowerShellResults <NavBarPack> powerShellResults = new PowerShellResults <NavBarPack>();

            if (navBarClientBase != null)
            {
                navBarClientBase.PrepareNavBarPack();
                NavBarPack navBarPack = navBarClientBase.GetNavBarPack();
                if (navBarPack != null)
                {
                    powerShellResults.Output = new NavBarPack[]
                    {
                        navBarPack
                    };
                }
            }
            return(powerShellResults);
        }
 public PowerShellResults <MailboxCalendarFolderRow> SetObject(Identity identity, SetMailboxCalendarFolder properties)
 {
     identity.FaultIfNull();
     return(base.SetObject <MailboxCalendarFolderRow, SetMailboxCalendarFolder>("Set-MailboxCalendarFolder", (Identity)identity.ToMailboxFolderIdParameter(), properties));
 }
 public PowerShellResults <MailboxCalendarFolderRow> GetObject(Identity identity)
 {
     identity.FaultIfNull();
     return(base.GetObject <MailboxCalendarFolderRow>("Get-MailboxCalendarFolder", (Identity)identity.ToMailboxFolderIdParameter()));
 }
Exemple #6
0
        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);
        }