Update deps
- Remove recurrence conversion project
This commit is contained in:
parent
559f780f8e
commit
7824169d51
|
@ -1,16 +0,0 @@
|
||||||
<Project Sdk="Microsoft.NET.Sdk">
|
|
||||||
|
|
||||||
<PropertyGroup>
|
|
||||||
<OutputType>Exe</OutputType>
|
|
||||||
<TargetFramework>net6.0</TargetFramework>
|
|
||||||
</PropertyGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<Compile Include="Program.fs" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<ProjectReference Include="..\MyPrayerJournal\MyPrayerJournal.fsproj" />
|
|
||||||
</ItemGroup>
|
|
||||||
|
|
||||||
</Project>
|
|
|
@ -1,114 +0,0 @@
|
||||||
open MyPrayerJournal.Domain
|
|
||||||
open NodaTime
|
|
||||||
|
|
||||||
/// The old definition of the history entry
|
|
||||||
[<CLIMutable; NoComparison; NoEquality>]
|
|
||||||
type OldHistory =
|
|
||||||
{ /// The time when this history entry was made
|
|
||||||
asOf : int64
|
|
||||||
/// The status for this history entry
|
|
||||||
status : RequestAction
|
|
||||||
/// The text of the update, if applicable
|
|
||||||
text : string option
|
|
||||||
}
|
|
||||||
|
|
||||||
/// The old definition of of the note entry
|
|
||||||
[<CLIMutable; NoComparison; NoEquality>]
|
|
||||||
type OldNote =
|
|
||||||
{ /// The time when this note was made
|
|
||||||
asOf : int64
|
|
||||||
|
|
||||||
/// The text of the notes
|
|
||||||
notes : string
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Request is the identifying record for a prayer request
|
|
||||||
[<CLIMutable; NoComparison; NoEquality>]
|
|
||||||
type OldRequest =
|
|
||||||
{ /// The ID of the request
|
|
||||||
id : RequestId
|
|
||||||
|
|
||||||
/// The time this request was initially entered
|
|
||||||
enteredOn : int64
|
|
||||||
|
|
||||||
/// The ID of the user to whom this request belongs ("sub" from the JWT)
|
|
||||||
userId : UserId
|
|
||||||
|
|
||||||
/// The time at which this request should reappear in the user's journal by manual user choice
|
|
||||||
snoozedUntil : int64
|
|
||||||
|
|
||||||
/// The time at which this request should reappear in the user's journal by recurrence
|
|
||||||
showAfter : int64
|
|
||||||
|
|
||||||
/// The type of recurrence for this request
|
|
||||||
recurType : string
|
|
||||||
|
|
||||||
/// How many of the recurrence intervals should occur between appearances in the journal
|
|
||||||
recurCount : int16
|
|
||||||
|
|
||||||
/// The history entries for this request
|
|
||||||
history : OldHistory[]
|
|
||||||
|
|
||||||
/// The notes for this request
|
|
||||||
notes : OldNote[]
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
open LiteDB
|
|
||||||
open MyPrayerJournal.Data
|
|
||||||
|
|
||||||
let db = new LiteDatabase ("Filename=./mpj.db")
|
|
||||||
Startup.ensureDb db
|
|
||||||
|
|
||||||
/// Map the old recurrence to the new style
|
|
||||||
let mapRecurrence old =
|
|
||||||
match old.recurType with
|
|
||||||
| "Days" -> Days old.recurCount
|
|
||||||
| "Hours" -> Hours old.recurCount
|
|
||||||
| "Weeks" -> Weeks old.recurCount
|
|
||||||
| _ -> Immediate
|
|
||||||
|
|
||||||
/// Convert an old history entry to the new form
|
|
||||||
let convertHistory (old : OldHistory) =
|
|
||||||
{ AsOf = Instant.FromUnixTimeMilliseconds old.asOf
|
|
||||||
Status = old.status
|
|
||||||
Text = old.text
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Convert an old note to the new form
|
|
||||||
let convertNote (old : OldNote) =
|
|
||||||
{ AsOf = Instant.FromUnixTimeMilliseconds old.asOf
|
|
||||||
Notes = old.notes
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Convert items that may be Instant.MinValue or Instant(0) to None
|
|
||||||
let noneIfOld ms =
|
|
||||||
match Instant.FromUnixTimeMilliseconds ms with
|
|
||||||
| instant when instant > Instant.FromUnixTimeMilliseconds 0 -> Some instant
|
|
||||||
| _ -> None
|
|
||||||
|
|
||||||
/// Map the old request to the new request
|
|
||||||
let convert old =
|
|
||||||
{ Id = old.id
|
|
||||||
EnteredOn = Instant.FromUnixTimeMilliseconds old.enteredOn
|
|
||||||
UserId = old.userId
|
|
||||||
SnoozedUntil = noneIfOld old.snoozedUntil
|
|
||||||
ShowAfter = noneIfOld old.showAfter
|
|
||||||
Recurrence = mapRecurrence old
|
|
||||||
History = old.history |> Array.map convertHistory |> List.ofArray
|
|
||||||
Notes = old.notes |> Array.map convertNote |> List.ofArray
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Remove the old request, add the converted one (removes recurType / recurCount fields)
|
|
||||||
let replace (req : Request) =
|
|
||||||
db.Requests.Delete (Mapping.RequestId.toBson req.Id) |> ignore
|
|
||||||
db.Requests.Insert req |> ignore
|
|
||||||
db.Checkpoint ()
|
|
||||||
|
|
||||||
db.GetCollection<OldRequest>("request").FindAll ()
|
|
||||||
|> Seq.map convert
|
|
||||||
|> List.ofSeq
|
|
||||||
|> List.iter replace
|
|
||||||
|
|
||||||
// For more information see https://aka.ms/fsharp-console-apps
|
|
||||||
printfn "Done"
|
|
|
@ -21,10 +21,10 @@
|
||||||
<PackageReference Include="BitBadger.Npgsql.FSharp.Documents" Version="1.0.0-beta3" />
|
<PackageReference Include="BitBadger.Npgsql.FSharp.Documents" Version="1.0.0-beta3" />
|
||||||
<PackageReference Include="FSharp.SystemTextJson" Version="1.2.42" />
|
<PackageReference Include="FSharp.SystemTextJson" Version="1.2.42" />
|
||||||
<PackageReference Include="FunctionalCuid" Version="1.0.0" />
|
<PackageReference Include="FunctionalCuid" Version="1.0.0" />
|
||||||
<PackageReference Include="Giraffe" Version="6.0.0" />
|
<PackageReference Include="Giraffe" Version="6.2.0" />
|
||||||
<PackageReference Include="Giraffe.Htmx" Version="1.9.6" />
|
<PackageReference Include="Giraffe.Htmx" Version="1.9.6" />
|
||||||
<PackageReference Include="Giraffe.ViewEngine.Htmx" Version="1.9.6" />
|
<PackageReference Include="Giraffe.ViewEngine.Htmx" Version="1.9.6" />
|
||||||
<PackageReference Include="Microsoft.AspNetCore.Authentication.OpenIdConnect" Version="7.0.5" />
|
<PackageReference Include="Microsoft.AspNetCore.Authentication.OpenIdConnect" Version="7.0.11" />
|
||||||
<PackageReference Include="NodaTime.Serialization.SystemTextJson" Version="1.1.2" />
|
<PackageReference Include="NodaTime.Serialization.SystemTextJson" Version="1.1.2" />
|
||||||
<PackageReference Include="Npgsql.NodaTime" Version="7.0.6" />
|
<PackageReference Include="Npgsql.NodaTime" Version="7.0.6" />
|
||||||
<PackageReference Update="FSharp.Core" Version="7.0.400" />
|
<PackageReference Update="FSharp.Core" Version="7.0.400" />
|
||||||
|
|
Loading…
Reference in New Issue
Block a user