1: function Get-WeatherStationHistory
2: {
3:
4: [CmdletBinding(DefaultParameterSetName="PreviousDays")]
5: PARAM(
6:
7: [Parameter(Position=0, Mandatory=$false, ValueFromPipeline=$false, ParameterSetName="PreviousDays")]
8: [ValidateScript({([DateTime]::Now - $_) -ge "1/1/2006"})
9: [TimeSpan] $PreviousDays,
10:
11: [Parameter(Position=0, Mandatory=$false, ValueFromPipeline=$false)]
12: [ValidateScript({$_ -le [DateTime]::Now -and $_ -ge "1/1/2006"})
13: #[ValidateScript({$_ -le $LastDay })] Problem $LastDay is not defined yet
14: [DateTime] $FirstDay=[DateTime]::Now,
15:
16: [Parameter(Position=1, Mandatory=$false, ValueFromPipeline=$false, ParameterSetName="NextDays")]
17: [ValidateScript({($FirstDay + $_) -le [DateTime]::Now})
18: [TimeSpan] $NextDays,
19:
20: [Parameter(Position=1, Mandatory=$false, ValueFromPipeline=$false, ParameterSetName="LastDay")]
21: [ValidateScript({$_ -le [DateTime]::Now -and $_ -ge "1/1/2006"})
22: [ValidateScript({$_ -ge $FirstDay })]
23: [DateTime] $LastDay=[DateTime]::Now,
24:
25: [Parameter(Position=2, Mandatory=$true, ValueFromPipeline=$false)]
26: [ValidateSet("KCARIVER16", "KCAMOREN6", "KCABEAUM3", IgnoreCase = $true)]
27: [String] $WeatherStationCode = "KCAMISSI5"
28:
29:
30: )
31: Process{
32:
33: switch ($PsCmdlet.ParameterSetName)
34: {
35: "NextDays"
36: {
37: "Parameter Set NextDays"
38: Process-Downloads -FirstDay $FirstDay -NumberOfDays $NextDays -Station $WeatherStationCode
39: }
40:
41: "LastDay"
42: {
43: "Parameter Set LastDay"
44: $Days = $LastDay - $FirstDay
45: Process-Downloads -FirstDay $FirstDay -NumberOfDays $Days -Station $WeatherStationCode
46: }
47:
48: "PreviousDays"
49: {
50: "Parameter Set PreviousDays"
51: $StartDay = [DateTime]::Now - $PreviousDays
52: Process-Downloads -FirstDay $StartDay -NumberOfDays $PreviousDays -Station $WeatherStationCode
53: }
54: }
55:
56: }# End Process
57: }