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