MyTickle.psm1



#dot source module functions
. $PSScriptRoot\functions\private.ps1
. $PSScriptRoot\functions\public.ps1

#region Define module variables

#the default number of days to display for Show-TickleEvents
$TickleDefaultDays = 7

#database defaults
$TickleDB = 'TickleEventDB'
$TickleTable = 'EventData'
$TickleServerInstance = ".\SqlExpress"

#endregion

#region Class definition

Class myTickle {

    [string]$Event
    [datetime]$Date
    [string]$Comment
    [int32]$ID
    [boolean]$Expired = $False
    hidden [timespan]$Countdown

    #constructor
    myTickle([int32]$ID, [string]$Event, [datetime]$Date, [string]$Comment) {
        $this.ID = $ID
        $this.Event = $Event
        $this.Date = $Date
        $this.Comment = $Comment
        if ($Date -lt (Get-Date)) {
            $this.Expired = $True
        }
        $ts = $this.Date - (Get-Date)
        if ($ts.totalminutes -lt 0) {
            $ts = New-TimeSpan -Minutes 0
        }
        $this.Countdown = $ts
    }
} #close class

Update-TypeData -TypeName myTickle -DefaultDisplayPropertySet ID, Date, Event, Comment -Force

#endregion

$export = @{
    Variable = 'TickleDefaultDays', 'TickleDB', 'TickleTable', 'TickleServerInstance'
    Alias    = 'gte', 'ate', 'rte', 'shte', 'ste'
    Function = 'Get-TickleEvent', 'Set-TickleEvent', 'Add-TickleEvent',
    'Remove-TickleEvent', 'Initialize-TickleDatabase',
    'Export-TickleDatabase', 'Import-TickleDatabase','Show-TickleEvent'
}
Export-ModuleMember @export