WIP on .NET 6 conversion (#31)
This commit is contained in:
parent
665d80261d
commit
7a2f2bd92d
src
Directory.Build.props
PrayerTracker.Data
PrayerTracker.Tests
PrayerTracker.UI
Church.fsCommonFunctions.fsHome.fsLayout.fsPrayerRequest.fsPrayerTracker.UI.fsprojSmallGroup.fsUser.fsViewModels.fs
PrayerTracker
@ -1,9 +1,9 @@
|
||||
<Project>
|
||||
<PropertyGroup>
|
||||
<AssemblyVersion>7.5.0.0</AssemblyVersion>
|
||||
<FileVersion>7.5.0.0</FileVersion>
|
||||
<AssemblyVersion>7.6.0.0</AssemblyVersion>
|
||||
<FileVersion>7.6.0.0</FileVersion>
|
||||
<Authors>danieljsummers</Authors>
|
||||
<Company>Bit Badger Solutions</Company>
|
||||
<Version>7.5.0</Version>
|
||||
<Version>7.6.0</Version>
|
||||
</PropertyGroup>
|
||||
</Project>
|
||||
|
@ -1,7 +1,6 @@
|
||||
[<AutoOpen>]
|
||||
module PrayerTracker.DataAccess
|
||||
|
||||
open FSharp.Control.Tasks.ContextInsensitive
|
||||
open Microsoft.EntityFrameworkCore
|
||||
open PrayerTracker.Entities
|
||||
open System.Collections.Generic
|
||||
|
@ -6,6 +6,8 @@ open NodaTime
|
||||
open System
|
||||
open System.Collections.Generic
|
||||
|
||||
// fsharplint:disable RecordFieldNames MemberNames
|
||||
|
||||
(*-- SUPPORT TYPES --*)
|
||||
|
||||
/// How as-of dates should (or should not) be displayed with requests
|
||||
|
@ -10,6 +10,7 @@ open PrayerTracker
|
||||
open PrayerTracker.Entities
|
||||
open System
|
||||
|
||||
// fsharplint:disable RecordFieldNames
|
||||
|
||||
type ChurchTable =
|
||||
{ churchId : OperationBuilder<AddColumnOperation>
|
||||
|
@ -1,7 +1,7 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net5.0</TargetFramework>
|
||||
<TargetFramework>net6.0</TargetFramework>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
@ -14,10 +14,9 @@
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="FSharp.EFCore.OptionConverter" Version="1.0.0" />
|
||||
<PackageReference Include="Microsoft.FSharpLu" Version="0.11.6" />
|
||||
<PackageReference Include="NodaTime" Version="2.4.7" />
|
||||
<PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="3.1.2" />
|
||||
<PackageReference Include="TaskBuilder.fs" Version="2.1.0" />
|
||||
<PackageReference Include="Microsoft.FSharpLu" Version="0.11.7" />
|
||||
<PackageReference Include="NodaTime" Version="3.0.5" />
|
||||
<PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="5.0.10" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
<PropertyGroup>
|
||||
<OutputType>Exe</OutputType>
|
||||
<TargetFramework>net5.0</TargetFramework>
|
||||
<TargetFramework>net6.0</TargetFramework>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
@ -15,9 +15,9 @@
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Expecto" Version="8.13.1" />
|
||||
<PackageReference Include="Expecto" Version="9.0.4" />
|
||||
<PackageReference Include="Expecto.VisualStudio.TestAdapter" Version="10.0.2" />
|
||||
<PackageReference Include="NodaTime.Testing" Version="2.4.7" />
|
||||
<PackageReference Include="NodaTime.Testing" Version="3.0.5" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
|
@ -1,7 +1,7 @@
|
||||
module PrayerTracker.UI.CommonFunctionsTests
|
||||
|
||||
open Expecto
|
||||
open Giraffe.GiraffeViewEngine
|
||||
open Giraffe.ViewEngine
|
||||
open Microsoft.AspNetCore.Mvc.Localization
|
||||
open Microsoft.Extensions.Localization
|
||||
open PrayerTracker.Tests.TestLocalization
|
||||
|
@ -1,6 +1,6 @@
|
||||
module PrayerTracker.Views.Church
|
||||
|
||||
open Giraffe.GiraffeViewEngine
|
||||
open Giraffe.ViewEngine
|
||||
open PrayerTracker.Entities
|
||||
open PrayerTracker.ViewModels
|
||||
|
||||
|
@ -2,8 +2,9 @@
|
||||
module PrayerTracker.Views.CommonFunctions
|
||||
|
||||
open Giraffe
|
||||
open Giraffe.GiraffeViewEngine
|
||||
open Giraffe.ViewEngine
|
||||
open Microsoft.AspNetCore.Antiforgery
|
||||
open Microsoft.AspNetCore.Html
|
||||
open Microsoft.AspNetCore.Http
|
||||
open Microsoft.AspNetCore.Mvc.Localization
|
||||
open Microsoft.Extensions.Localization
|
||||
@ -125,6 +126,13 @@ let _onsubmit = attr "onsubmit"
|
||||
let _scoped = flag "scoped"
|
||||
|
||||
|
||||
/// The name this function used to have when the view engine was part of Giraffe
|
||||
let renderHtmlNode = RenderView.AsString.htmlNode
|
||||
|
||||
/// Render an HTML node, then return the value as an HTML string
|
||||
let renderHtmlString = renderHtmlNode >> HtmlString
|
||||
|
||||
|
||||
/// Utility methods to help with time zones (and localization of their names)
|
||||
module TimeZones =
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
/// Views associated with the home page, or those that don't fit anywhere else
|
||||
module PrayerTracker.Views.Home
|
||||
|
||||
open Giraffe.GiraffeViewEngine
|
||||
open Giraffe.ViewEngine
|
||||
open Microsoft.AspNetCore.Html
|
||||
open PrayerTracker.ViewModels
|
||||
open System.IO
|
||||
@ -204,7 +204,7 @@ let termsOfService vi =
|
||||
let raw = rawLocText sw
|
||||
let ppLink =
|
||||
a [ _href "/web/legal/privacy-policy" ] [ str (s.["Privacy Policy"].Value.ToLower ()) ]
|
||||
|> (renderHtmlNode >> HtmlString)
|
||||
|> renderHtmlString
|
||||
|
||||
[ p [ _class "pt-right-text" ] [ small [] [ em [] [ raw l.["(as of May 24, 2018)"] ] ] ]
|
||||
h3 [] [ str "1. "; raw l.["Acceptance of Terms"] ]
|
||||
|
@ -1,7 +1,7 @@
|
||||
/// Layout items for PrayerTracker
|
||||
module PrayerTracker.Views.Layout
|
||||
|
||||
open Giraffe.GiraffeViewEngine
|
||||
open Giraffe.ViewEngine
|
||||
open PrayerTracker
|
||||
open PrayerTracker.ViewModels
|
||||
open System
|
||||
|
@ -1,7 +1,7 @@
|
||||
module PrayerTracker.Views.PrayerRequest
|
||||
|
||||
open Giraffe
|
||||
open Giraffe.GiraffeViewEngine
|
||||
open Giraffe.ViewEngine
|
||||
open Microsoft.AspNetCore.Http
|
||||
open NodaTime
|
||||
open PrayerTracker
|
||||
|
@ -1,7 +1,7 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net5.0</TargetFramework>
|
||||
<TargetFramework>net6.0</TargetFramework>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
@ -18,13 +18,14 @@
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Giraffe" Version="4.0.1" />
|
||||
<PackageReference Include="MailKit" Version="2.5.1" />
|
||||
<PackageReference Include="Giraffe" Version="5.0.0" />
|
||||
<PackageReference Include="Giraffe.ViewEngine" Version="1.4.0" />
|
||||
<PackageReference Include="MailKit" Version="2.15.0" />
|
||||
<PackageReference Include="Microsoft.AspNetCore.Html.Abstractions" Version="2.2.0" />
|
||||
<PackageReference Include="Microsoft.AspNetCore.Http" Version="2.2.2" />
|
||||
<PackageReference Include="Microsoft.AspNetCore.Http.Extensions" Version="2.2.0" />
|
||||
<PackageReference Include="Microsoft.AspNetCore.Mvc" Version="2.2.0" />
|
||||
<PackageReference Include="Newtonsoft.Json" Version="12.0.3" />
|
||||
<PackageReference Include="Newtonsoft.Json" Version="13.0.1" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
|
@ -1,6 +1,6 @@
|
||||
module PrayerTracker.Views.SmallGroup
|
||||
|
||||
open Giraffe.GiraffeViewEngine
|
||||
open Giraffe.ViewEngine
|
||||
open Microsoft.Extensions.Localization
|
||||
open PrayerTracker
|
||||
open PrayerTracker.Entities
|
||||
|
@ -1,6 +1,6 @@
|
||||
module PrayerTracker.Views.User
|
||||
|
||||
open Giraffe.GiraffeViewEngine
|
||||
open Giraffe.ViewEngine
|
||||
open PrayerTracker.Entities
|
||||
open PrayerTracker.ViewModels
|
||||
|
||||
|
@ -557,7 +557,7 @@ module UserLogOn =
|
||||
}
|
||||
|
||||
|
||||
open Giraffe.GiraffeViewEngine
|
||||
open Giraffe.ViewEngine
|
||||
|
||||
/// This represents a list of requests
|
||||
type RequestList =
|
||||
@ -651,7 +651,7 @@ with
|
||||
|> ul []
|
||||
br []
|
||||
]
|
||||
|> renderHtmlNodes
|
||||
|> RenderView.AsString.htmlNodes
|
||||
|
||||
/// Generate this list as plain text
|
||||
member this.asText (s : IStringLocalizer) =
|
||||
|
@ -1,6 +1,5 @@
|
||||
module PrayerTracker.Handlers.Church
|
||||
|
||||
open FSharp.Control.Tasks.V2.ContextInsensitive
|
||||
open Giraffe
|
||||
open PrayerTracker
|
||||
open PrayerTracker.Entities
|
||||
|
@ -2,7 +2,6 @@
|
||||
[<AutoOpen>]
|
||||
module PrayerTracker.Handlers.CommonFunctions
|
||||
|
||||
open FSharp.Control.Tasks.V2.ContextInsensitive
|
||||
open Giraffe
|
||||
open Microsoft.AspNetCore.Antiforgery
|
||||
open Microsoft.AspNetCore.Html
|
||||
@ -234,7 +233,7 @@ let requireAccess level : HttpHandler =
|
||||
}
|
||||
|
||||
fun next ctx ->
|
||||
task {
|
||||
FSharp.Control.Tasks.Affine.task {
|
||||
// Auto-logon user or class, if required
|
||||
match isUserLoggedOn ctx with
|
||||
| true -> ()
|
||||
|
@ -6,6 +6,7 @@ open System
|
||||
open System.Security.Cryptography
|
||||
open System.IO
|
||||
|
||||
// fsharplint:disable MemberNames
|
||||
|
||||
/// Cryptography settings to use for encrypting cookies
|
||||
type CookieCrypto (key : string, iv : string) =
|
||||
@ -24,7 +25,7 @@ module private Crypto =
|
||||
|
||||
/// Encrypt a cookie payload
|
||||
let encrypt (payload : string) =
|
||||
use aes = new AesManaged ()
|
||||
use aes = Aes.Create ()
|
||||
use enc = aes.CreateEncryptor (crypto.Key, crypto.IV)
|
||||
use ms = new MemoryStream ()
|
||||
use cs = new CryptoStream (ms, enc, CryptoStreamMode.Write)
|
||||
@ -35,7 +36,7 @@ module private Crypto =
|
||||
|
||||
/// Decrypt a cookie payload
|
||||
let decrypt payload =
|
||||
use aes = new AesManaged ()
|
||||
use aes = Aes.Create ()
|
||||
use dec = aes.CreateDecryptor (crypto.Key, crypto.IV)
|
||||
use ms = new MemoryStream (Convert.FromBase64String payload)
|
||||
use cs = new CryptoStream (ms, dec, CryptoStreamMode.Read)
|
||||
|
@ -1,7 +1,6 @@
|
||||
/// Methods for sending e-mails
|
||||
module PrayerTracker.Email
|
||||
|
||||
open FSharp.Control.Tasks.ContextInsensitive
|
||||
open MailKit.Net.Smtp
|
||||
open MailKit.Security
|
||||
open Microsoft.Extensions.Localization
|
||||
@ -62,7 +61,7 @@ let createTextMessage grp subj body (s : IStringLocalizer) =
|
||||
/// Send e-mails to a class
|
||||
let sendEmails (client : SmtpClient) (recipients : Member list) grp subj html text s =
|
||||
task {
|
||||
let htmlMsg = createHtmlMessage grp subj html s
|
||||
let htmlMsg = createHtmlMessage grp subj html s
|
||||
let plainTextMsg = createTextMessage grp subj text s
|
||||
|
||||
for mbr in recipients do
|
||||
|
@ -7,6 +7,7 @@ open Newtonsoft.Json
|
||||
open PrayerTracker.Entities
|
||||
open PrayerTracker.ViewModels
|
||||
|
||||
// fsharplint:disable MemberNames
|
||||
|
||||
type ISession with
|
||||
/// Set an object in the session
|
||||
|
@ -1,6 +1,5 @@
|
||||
module PrayerTracker.Handlers.PrayerRequest
|
||||
|
||||
open FSharp.Control.Tasks.V2.ContextInsensitive
|
||||
open Giraffe
|
||||
open Microsoft.AspNetCore.Http
|
||||
open NodaTime
|
||||
|
@ -1,7 +1,7 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk.Web">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net5.0</TargetFramework>
|
||||
<TargetFramework>net6.0</TargetFramework>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
@ -23,10 +23,10 @@
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Giraffe" Version="4.0.1" />
|
||||
<PackageReference Include="Giraffe" Version="5.0.0" />
|
||||
<PackageReference Include="Giraffe.TokenRouter" Version="1.0.0" />
|
||||
<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="3.1.1" />
|
||||
<PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="3.1.2" />
|
||||
<PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="5.0.10" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
|
@ -1,8 +1,7 @@
|
||||
module PrayerTracker.Handlers.SmallGroup
|
||||
|
||||
open FSharp.Control.Tasks.V2.ContextInsensitive
|
||||
open Giraffe
|
||||
open Giraffe.GiraffeViewEngine
|
||||
open Giraffe.ViewEngine
|
||||
open Microsoft.AspNetCore.Http
|
||||
open NodaTime
|
||||
open PrayerTracker
|
||||
|
@ -1,6 +1,5 @@
|
||||
module PrayerTracker.Handlers.User
|
||||
|
||||
open FSharp.Control.Tasks.V2.ContextInsensitive
|
||||
open Giraffe
|
||||
open Microsoft.AspNetCore.Html
|
||||
open Microsoft.AspNetCore.Http
|
||||
|
Loading…
Reference in New Issue
Block a user