Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0748ad6ce8 | ||
|
|
7d0e1484ba | ||
|
|
087595ee75 |
@@ -545,13 +545,13 @@ and [<CLIMutable; NoComparison; NoEquality>] PrayerRequest =
|
|||||||
match this.requestType with
|
match this.requestType with
|
||||||
| LongTermRequest
|
| LongTermRequest
|
||||||
| Expecting -> false
|
| Expecting -> false
|
||||||
| _ -> curr.AddDays(-(float expDays)) > this.updatedDate // Automatic expiration
|
| _ -> curr.AddDays(-(float expDays)).Date > this.updatedDate.Date // Automatic expiration
|
||||||
|
|
||||||
/// Is an update required for this long-term request?
|
/// Is an update required for this long-term request?
|
||||||
member this.updateRequired curr expDays updWeeks =
|
member this.updateRequired curr expDays updWeeks =
|
||||||
match this.isExpired curr expDays with
|
match this.isExpired curr expDays with
|
||||||
| true -> false
|
| true -> false
|
||||||
| false -> curr.AddDays(-(float (updWeeks * 7))) > this.updatedDate
|
| false -> curr.AddDays(-(float (updWeeks * 7))).Date > this.updatedDate.Date
|
||||||
|
|
||||||
/// Configure EF for this entity
|
/// Configure EF for this entity
|
||||||
static member internal configureEF (mb : ModelBuilder) =
|
static member internal configureEF (mb : ModelBuilder) =
|
||||||
|
|||||||
@@ -2,8 +2,9 @@
|
|||||||
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TargetFramework>netstandard2.0</TargetFramework>
|
<TargetFramework>netstandard2.0</TargetFramework>
|
||||||
<AssemblyVersion>7.3.0.0</AssemblyVersion>
|
<AssemblyVersion>7.3.2.0</AssemblyVersion>
|
||||||
<FileVersion>7.3.0.0</FileVersion>
|
<FileVersion>7.3.2.0</FileVersion>
|
||||||
|
<Version>7.3.2</Version>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
@@ -16,9 +17,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.10.30" />
|
<PackageReference Include="Microsoft.FSharpLu" Version="0.10.31" />
|
||||||
<PackageReference Include="NodaTime" Version="2.4.4" />
|
<PackageReference Include="NodaTime" Version="2.4.5" />
|
||||||
<PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="2.2.0" />
|
<PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="2.2.4" />
|
||||||
<PackageReference Include="TaskBuilder.fs" Version="2.1.0" />
|
<PackageReference Include="TaskBuilder.fs" Version="2.1.0" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
|
|||||||
@@ -171,33 +171,42 @@ let prayerRequestTests =
|
|||||||
Expect.isTrue (req.isExpired DateTime.Now 5) "A force-expired request should always be considered expired"
|
Expect.isTrue (req.isExpired DateTime.Now 5) "A force-expired request should always be considered expired"
|
||||||
}
|
}
|
||||||
test "isExpired returns false for non-expired requests" {
|
test "isExpired returns false for non-expired requests" {
|
||||||
let req = { PrayerRequest.empty with updatedDate = DateTime.Now.AddDays -5. }
|
let now = DateTime.Now
|
||||||
Expect.isFalse (req.isExpired DateTime.Now 7) "A request updated 5 days ago should not be considered expired"
|
let req = { PrayerRequest.empty with updatedDate = now.AddDays -5. }
|
||||||
|
Expect.isFalse (req.isExpired now 7) "A request updated 5 days ago should not be considered expired"
|
||||||
}
|
}
|
||||||
test "isExpired returns true for expired requests" {
|
test "isExpired returns true for expired requests" {
|
||||||
let req = { PrayerRequest.empty with updatedDate = DateTime.Now.AddDays -8. }
|
let now = DateTime.Now
|
||||||
Expect.isTrue (req.isExpired DateTime.Now 7) "A request updated 8 days ago should be considered expired"
|
let req = { PrayerRequest.empty with updatedDate = now.AddDays -8. }
|
||||||
|
Expect.isTrue (req.isExpired now 7) "A request updated 8 days ago should be considered expired"
|
||||||
|
}
|
||||||
|
test "isExpired returns true for same-day expired requests" {
|
||||||
|
let now = DateTime.Now
|
||||||
|
let req = { PrayerRequest.empty with updatedDate = now.Date.AddDays(-7.).AddSeconds -1. }
|
||||||
|
Expect.isTrue (req.isExpired now 7) "A request entered a second before midnight should be considered expired"
|
||||||
}
|
}
|
||||||
test "updateRequired returns false for expired requests" {
|
test "updateRequired returns false for expired requests" {
|
||||||
let req = { PrayerRequest.empty with expiration = Forced }
|
let req = { PrayerRequest.empty with expiration = Forced }
|
||||||
Expect.isFalse (req.updateRequired DateTime.Now 7 4) "An expired request should not require an update"
|
Expect.isFalse (req.updateRequired DateTime.Now 7 4) "An expired request should not require an update"
|
||||||
}
|
}
|
||||||
test "updateRequired returns false when an update is not required for an active request" {
|
test "updateRequired returns false when an update is not required for an active request" {
|
||||||
|
let now = DateTime.Now
|
||||||
let req =
|
let req =
|
||||||
{ PrayerRequest.empty with
|
{ PrayerRequest.empty with
|
||||||
requestType = LongTermRequest
|
requestType = LongTermRequest
|
||||||
updatedDate = DateTime.Now.AddDays -14.
|
updatedDate = now.AddDays -14.
|
||||||
}
|
}
|
||||||
Expect.isFalse (req.updateRequired DateTime.Now 7 4)
|
Expect.isFalse (req.updateRequired now 7 4)
|
||||||
"An active request updated 14 days ago should not require an update until 28 days"
|
"An active request updated 14 days ago should not require an update until 28 days"
|
||||||
}
|
}
|
||||||
test "updateRequired returns true when an update is required for an active request" {
|
test "updateRequired returns true when an update is required for an active request" {
|
||||||
|
let now = DateTime.Now
|
||||||
let req =
|
let req =
|
||||||
{ PrayerRequest.empty with
|
{ PrayerRequest.empty with
|
||||||
requestType = LongTermRequest
|
requestType = LongTermRequest
|
||||||
updatedDate = DateTime.Now.AddDays -34.
|
updatedDate = now.AddDays -34.
|
||||||
}
|
}
|
||||||
Expect.isTrue (req.updateRequired DateTime.Now 7 4)
|
Expect.isTrue (req.updateRequired now 7 4)
|
||||||
"An active request updated 34 days ago should require an update (past 28 days)"
|
"An active request updated 34 days ago should require an update (past 28 days)"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -3,8 +3,9 @@
|
|||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<OutputType>Exe</OutputType>
|
<OutputType>Exe</OutputType>
|
||||||
<TargetFramework>netcoreapp2.2</TargetFramework>
|
<TargetFramework>netcoreapp2.2</TargetFramework>
|
||||||
<AssemblyVersion>7.3.0.0</AssemblyVersion>
|
<AssemblyVersion>7.3.2.0</AssemblyVersion>
|
||||||
<FileVersion>7.3.0.0</FileVersion>
|
<FileVersion>7.3.2.0</FileVersion>
|
||||||
|
<Version>7.3.2</Version>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
@@ -17,9 +18,9 @@
|
|||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="Expecto" Version="8.9.1" />
|
<PackageReference Include="Expecto" Version="8.10.1" />
|
||||||
<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.4" />
|
<PackageReference Include="NodaTime.Testing" Version="2.4.5" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
|||||||
@@ -2,8 +2,9 @@
|
|||||||
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TargetFramework>netstandard2.0</TargetFramework>
|
<TargetFramework>netstandard2.0</TargetFramework>
|
||||||
<AssemblyVersion>7.3.0.0</AssemblyVersion>
|
<AssemblyVersion>7.3.2.0</AssemblyVersion>
|
||||||
<FileVersion>7.0.0.0</FileVersion>
|
<FileVersion>7.3.2.0</FileVersion>
|
||||||
|
<Version>7.3.2</Version>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
@@ -21,12 +22,12 @@
|
|||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="Giraffe" Version="3.6.0" />
|
<PackageReference Include="Giraffe" Version="3.6.0" />
|
||||||
<PackageReference Include="MailKit" Version="2.1.3" />
|
<PackageReference Include="MailKit" Version="2.1.5.1" />
|
||||||
<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.1" />
|
<PackageReference Include="Newtonsoft.Json" Version="12.0.2" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
|||||||
@@ -55,7 +55,7 @@ module Configure =
|
|||||||
CookieCrypto (crypto.["Key"], crypto.["IV"]) |> setCrypto
|
CookieCrypto (crypto.["Key"], crypto.["IV"]) |> setCrypto
|
||||||
svc.AddDbContext<AppDbContext>(
|
svc.AddDbContext<AppDbContext>(
|
||||||
fun options ->
|
fun options ->
|
||||||
options.UseNpgsql(config.GetConnectionString "PrayerTracker") |> ignore)
|
options.UseNpgsql (config.GetConnectionString "PrayerTracker") |> ignore)
|
||||||
|> ignore
|
|> ignore
|
||||||
|
|
||||||
/// Routes for PrayerTracker
|
/// Routes for PrayerTracker
|
||||||
|
|||||||
@@ -261,8 +261,7 @@ let save : HttpHandler =
|
|||||||
>=> validateCSRF
|
>=> validateCSRF
|
||||||
>=> fun next ctx ->
|
>=> fun next ctx ->
|
||||||
task {
|
task {
|
||||||
let! result = ctx.TryBindFormAsync<EditRequest> ()
|
match! ctx.TryBindFormAsync<EditRequest> () with
|
||||||
match result with
|
|
||||||
| Ok m ->
|
| Ok m ->
|
||||||
let db = ctx.dbContext ()
|
let db = ctx.dbContext ()
|
||||||
let! req =
|
let! req =
|
||||||
@@ -274,7 +273,7 @@ let save : HttpHandler =
|
|||||||
let upd8 =
|
let upd8 =
|
||||||
{ pr with
|
{ pr with
|
||||||
requestType = PrayerRequestType.fromCode m.requestType
|
requestType = PrayerRequestType.fromCode m.requestType
|
||||||
requestor = m.requestor
|
requestor = match m.requestor with Some x when x.Trim () = "" -> None | x -> x
|
||||||
text = ckEditorToText m.text
|
text = ckEditorToText m.text
|
||||||
expiration = Expiration.fromCode m.expiration
|
expiration = Expiration.fromCode m.expiration
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,10 +2,11 @@
|
|||||||
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TargetFramework>netcoreapp2.2</TargetFramework>
|
<TargetFramework>netcoreapp2.2</TargetFramework>
|
||||||
<AssemblyVersion>7.3.0.0</AssemblyVersion>
|
<AssemblyVersion>7.3.2.0</AssemblyVersion>
|
||||||
<FileVersion>7.3.0.0</FileVersion>
|
<FileVersion>7.3.2.0</FileVersion>
|
||||||
<Authors></Authors>
|
<Authors></Authors>
|
||||||
<Company>Bit Badger Solutions</Company>
|
<Company>Bit Badger Solutions</Company>
|
||||||
|
<Version>7.3.2</Version>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
@@ -31,7 +32,7 @@
|
|||||||
<PackageReference Include="Giraffe.TokenRouter" Version="1.0.0" />
|
<PackageReference Include="Giraffe.TokenRouter" Version="1.0.0" />
|
||||||
<PackageReference Include="Microsoft.AspNetCore.App" />
|
<PackageReference Include="Microsoft.AspNetCore.App" />
|
||||||
<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="2.2.3" />
|
<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="2.2.3" />
|
||||||
<PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="2.2.0" />
|
<PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="2.2.4" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
|||||||
Reference in New Issue
Block a user