namespace TJLaskuri.Core open System module Domain = // TODO: More precise time: hours, minutes // TODO: Time until service starts let getStartDate kontingent = match serviceStartDates.TryGetValue(kontingent) with | true, startDate -> Some startDate | false, _ -> None let getEndDate kontingent serviceTime = getStartDate kontingent |> Option.map (fun startDate -> ServiceTime.getDays serviceTime |> fun x -> x - 1 // Count start date as well |> startDate.AddDays) let getTimeCompleted kontingent (now : DateTime) = getStartDate kontingent |> Option.map (fun date -> now.AddDays(1) - date) let getTimeLeft kontingent serviceTime (now : DateTime) = getEndDate kontingent serviceTime |> Option.map (fun date -> date - now)