diff options
Diffstat (limited to 'TJLaskuri.Core')
| -rw-r--r-- | TJLaskuri.Core/Library.fs | 27 | ||||
| -rw-r--r-- | TJLaskuri.Core/TJLaskuri.Core.fsproj | 18 | ||||
| -rw-r--r-- | TJLaskuri.Core/Types.fs | 42 | ||||
| -rw-r--r-- | TJLaskuri.Core/Views.fs | 88 |
4 files changed, 0 insertions, 175 deletions
diff --git a/TJLaskuri.Core/Library.fs b/TJLaskuri.Core/Library.fs deleted file mode 100644 index aa7b7ea..0000000 --- a/TJLaskuri.Core/Library.fs +++ /dev/null @@ -1,27 +0,0 @@ -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) diff --git a/TJLaskuri.Core/TJLaskuri.Core.fsproj b/TJLaskuri.Core/TJLaskuri.Core.fsproj deleted file mode 100644 index bc6029f..0000000 --- a/TJLaskuri.Core/TJLaskuri.Core.fsproj +++ /dev/null @@ -1,18 +0,0 @@ -<Project Sdk="Microsoft.NET.Sdk"> - - <PropertyGroup> - <TargetFramework>net9.0</TargetFramework> - <GenerateDocumentationFile>true</GenerateDocumentationFile> - </PropertyGroup> - - <ItemGroup> - <Compile Include="Types.fs" /> - <Compile Include="Views.fs" /> - <Compile Include="Library.fs" /> - </ItemGroup> - - <ItemGroup> - <PackageReference Include="Falco.Markup" Version="1.2.0" /> - </ItemGroup> - -</Project> diff --git a/TJLaskuri.Core/Types.fs b/TJLaskuri.Core/Types.fs deleted file mode 100644 index 0c5b2d4..0000000 --- a/TJLaskuri.Core/Types.fs +++ /dev/null @@ -1,42 +0,0 @@ -namespace TJLaskuri.Core - -open System -open System.Collections.Generic - -[<AutoOpen>] -module Types = - /// Saapumiserä/kontingent N/Year - /// For example, 2/25 is { N = 2; Year = 2025 } - // Year field is first so that kontingents are sorted year first - type Kontingent = { Year : int; N : int } - - type ServiceTime = - | OneSixFive - | TwoFiveFive - | ThreeFourSeven - - module ServiceTime = - let getDays = function - | OneSixFive -> 165 - | TwoFiveFive -> 255 - | ThreeFourSeven -> 347 - - let kontingent n year = { N = n; Year = year } - - let serviceStartDates = - let date day month year = - DateTime((year : int), month, day) - let entry n year endDate = - let k = kontingent n year - KeyValuePair<Kontingent, DateTime>( - k, endDate) - - Dictionary<Kontingent, DateTime>([ - entry 2 2024 (date 8 7 2024) - entry 1 2025 (date 6 1 2025) - entry 2 2025 (date 7 7 2025) - entry 1 2026 (date 5 1 2026) - entry 2 2026 (date 6 7 2026) - entry 1 2027 (date 4 1 2027) - entry 2 2027 (date 5 7 2027) - ]) diff --git a/TJLaskuri.Core/Views.fs b/TJLaskuri.Core/Views.fs deleted file mode 100644 index 939acec..0000000 --- a/TJLaskuri.Core/Views.fs +++ /dev/null @@ -1,88 +0,0 @@ -namespace TJLaskuri.Core.Views - -open System -open Falco.Markup -open Elem -open Attr -open Text - -module Document = - let view documentBody = - html [ lang "fi" ] [ - head [] [ - meta [ charset "utf-8" ] - meta [ name "viewport"; content "width=device-width" ] - Elem.title [] [ raw "TJ-laskuri" ] - script [ type' "module"; src "/js/app.js" ] [] - link [ rel "stylesheet"; href "/styles.css" ] - ] - body [] [ - documentBody - ] - ] - -module Main = - type Model = { - TimeLeft : TimeSpan - TimeCompleted : TimeSpan - } - - let view model = - main [] [ - div [ class' "counter" ] [ - Elem.span [ class' "counter_title" ] [ - raw "Tänään jäljellä" - ] - Elem.span [ class' "counter_value" ] [ - enc (string <| Math.Ceiling model.TimeLeft.TotalDays) - ] - Elem.span [ class' "counter_mornings" ] [ - raw " aamua" - ] - ] - - div [ class' "progress-bar" ] [ - let p = 100.0 * (1.0 - model.TimeLeft / (model.TimeLeft + model.TimeCompleted)) - let cssWidth = sprintf "%s%%" (p.ToString("F2")) - - div [ - class' "progress-bar_value" - style <| - sprintf "background-color: green; width: %s" - cssWidth - ] [ - span <| sprintf "%s %%" (p.ToString("F2")) - ] - ] - - Elem.p [ - style "text-align: center; font-size: 1.5rem;" - ] [ - enc "2/25 347" - ] - - // div [] [ - // Elem.label [ for' "kontingent-select" ] [ raw "Saapumiserä:" ] - // select [ id "kontingent-select" ] [ - // option [ value "1/25" ] [ enc "1/25" ] - // option [ value "2/25" ] [ enc "2/25" ] - // option [ value "1/26" ] [ enc "1/26" ] - // option [ value "2/26" ] [ enc "2/26" ] - // ] - // ] - - // div [] [ - // Elem.p [] [ - // span "Tunteina" - // enc (string model.TimeLeft.TotalHours) - // ] - // Elem.p [] [ - // span "Sekunteina" - // enc (string model.TimeLeft.TotalSeconds) - // ] - // Elem.p [] [ - // span "Aamuja ohi " - // enc (string <| Math.Floor model.TimeCompleted.TotalDays) - // ] - // ] - ] |
