Public/SearchTime/Set-WESearchTime.ps1

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
function Set-WESearchTime {
    [Diagnostics.CodeAnalysis.SuppressMessageAttribute('PSUseShouldProcessForStateChangingFunctions', '')]
    [CmdletBinding()]
    param (
        [Parameter(Mandatory, HelpMessage = 'Time range definition')]
        [ValidateSet('PastHour', 'CurrentHour', 'PastDay', 'CurrentDay', 'CurrentMonth', 'PastMonth', 'PastQuarter', 'CurrentQuarter', 'CurrentDayMinusDayX', 'CurrentDayMinuxDaysX', 'CustomDate', 'Last3days', 'Last7days', 'Last14days', 'Everything')]
        [string]
        $Times,

        [Parameter(Mandatory = $false, HelpMessage = 'Days for specific Times parameter')]
        [int32]
        $Days,

        [Parameter(Mandatory = $false, HelpMessage = 'DateTime for specific Times parameter')]
        [DateTime]
        $DateFrom,

        [Parameter(Mandatory = $false, HelpMessage = 'DateTime for specific Times parameter')]
        [DateTime]
        $DateTo

    )
    process {
        switch ($Times) {
            { $PSItem -eq 'CurrentDayMinusDayX' } {
                @{
                    $PSitem = @{
                        Enabled = $true
                        Days    = $Days
                    }
                }
                break
            }
            { $PSItem -eq 'CurrentDayMinuxDaysX' } {
                @{
                    $PSitem = @{
                        Enabled = $true
                        Days    = $Days
                    }
                }
                break
            }
            { $PSItem -eq 'CustomDate' } {
                @{
                    CustomDate = @{
                        Enabled  = $true
                        DateFrom = $DateFrom
                        DateTo   = $DateTo
                    }
                }
                break
            }
            Default {
                @{
                    $PSItem = @{
                        Enabled = $true 
                    }
                }
            }
        }
    }
}