Eigenlijk voor Powershell, maar binnen de .NET familie zijn die dingen gemakkelijk over te zetten.
Ik heb een datagrid die allerlei user attributes bevat en een knop waarmee die attributen weggeschreven worden naar AD. Omdat niet altijd alle attributen weggeschreven dien te worden zit daar nog een menuutje tussen waarop geselecteerd kan worden welke attributen weg te schrijven. Dat ziet er zo uit (er is een reden dat company niet standaard weggeschreven wordt, maar die doet hier niet terzake).

Ja, ik zie nu ook dat er een t ontbreekt in committed. Is al gecorrigeerd intussen
Nu is de vraag hoe ik eigenlijk efficiënte code schrijf om die keuze toe te laten. Ik kan 17^2 queries schrijven en een if-structuur opzetten waarmee ik volgende week op de FP van TDWTF kom, maar dat is niet de bedoeling.
Mijn idee is om alle mogelijke stukken van de query in aparte variabelen te steken...
Een nieuwe variabele te maken met alvast wat er sowieso in thuishoort...
En dan afhankelijk van wat gekozen is, aan die string toe te voegen...
Zal ongetwijfeld werken, maar ik vroeg me af wat eigenlijk een elegantere oplossing is in zo'n geval.
Ik heb een datagrid die allerlei user attributes bevat en een knop waarmee die attributen weggeschreven worden naar AD. Omdat niet altijd alle attributen weggeschreven dien te worden zit daar nog een menuutje tussen waarop geselecteerd kan worden welke attributen weg te schrijven. Dat ziet er zo uit (er is een reden dat company niet standaard weggeschreven wordt, maar die doet hier niet terzake).

Ja, ik zie nu ook dat er een t ontbreekt in committed. Is al gecorrigeerd intussen
Nu is de vraag hoe ik eigenlijk efficiënte code schrijf om die keuze toe te laten. Ik kan 17^2 queries schrijven en een if-structuur opzetten waarmee ik volgende week op de FP van TDWTF kom, maar dat is niet de bedoeling.
Mijn idee is om alle mogelijke stukken van de query in aparte variabelen te steken...
C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| $ADCmdlet = "Set-ADUser" $ADIdentity = "-Identity $($dgvResults.CurrentRow.Cells['sAMAccountName'].Value)" $ADGivenName = "-GivenName $($dgvResults.CurrentRow.Cells['GivenName'].Value)" $ADSurname = "-Surname $($dgvResults.CurrentRow.Cells['Surname'].Value)" $ADDisplayName = "-DisplayName $($dgvResults.CurrentRow.Cells['DisplayName'].Value)" $ADEmailaddress = "-Emailaddress $($dgvResults.CurrentRow.Cells['Mail'].Value)" $ADTitle = "-Title $($dgvResults.CurrentRow.Cells['Title'].Value)" $ADStreetAddress = "-StreetAddress $($dgvResults.CurrentRow.Cells['StreetAddress'].Value)" $ADPostalCode = "-PostalCode $($dgvResults.CurrentRow.Cells['PostalCode'].Value)" $ADCity = "-City $($dgvResults.CurrentRow.Cells['City'].Value)" $ADCountry = "-Country $($dgvResults.CurrentRow.Cells['Country'].Value)" $ADCompany = "-Company $($dgvResults.CurrentRow.Cells['Company'].Value)" $ADHomepage = "-Homepage $()$dgvResults.CurrentRow.Cells['Homepage'].Value)" $ADOfficePhone = "-OfficePhone $($dgvResults.CurrentRow.Cells['OfficePhone'].Value)" $ADMobilePhone = "-MobilePhone $($dgvResults.CurrentRow.Cells['MobilePhone'].Value)" $ADFax = "-Fax $($dgvResults.CurrentRow.Cells['Fax'].Value)" $ADWhatIf = "-WhatIf" #During testing only |
Een nieuwe variabele te maken met alvast wat er sowieso in thuishoort...
C#:
1
| $ADCommandString = $ADCmdlet + " " + $ADWhatIf |
En dan afhankelijk van wat gekozen is, aan die string toe te voegen...
C#:
1
2
3
4
5
6
7
8
9
| If ($cbxGivenName.Checked -EQ $True) { $ADCommandString = $ADCommandString + " " + "$ADGivenName" } If ($cbxSurname.Checked -EQ $True) { $ADCommandString = $ADCommandString + " " + "$ADSurname" } #etc |
Zal ongetwijfeld werken, maar ik vroeg me af wat eigenlijk een elegantere oplossing is in zo'n geval.