NuGet dep on WoofWare.Myriad
This commit is contained in:
@@ -11,58 +11,87 @@ module TestJson =
|
|||||||
|
|
||||||
let gymOpeningHoursCases =
|
let gymOpeningHoursCases =
|
||||||
[
|
[
|
||||||
"""{"openingHours": [], "isAlwaysOpen": false}""", { GymOpeningHours.OpeningHours = [] ; IsAlwaysOpen = false }
|
"""{"openingHours": [], "isAlwaysOpen": false}""",
|
||||||
"""{"openingHours": ["something"], "isAlwaysOpen": false}""", { GymOpeningHours.OpeningHours = ["something"] ; IsAlwaysOpen = false }
|
{
|
||||||
|
GymOpeningHours.OpeningHours = []
|
||||||
|
IsAlwaysOpen = false
|
||||||
|
}
|
||||||
|
"""{"openingHours": ["something"], "isAlwaysOpen": false}""",
|
||||||
|
{
|
||||||
|
GymOpeningHours.OpeningHours = [ "something" ]
|
||||||
|
IsAlwaysOpen = false
|
||||||
|
}
|
||||||
]
|
]
|
||||||
|> List.map TestCaseData
|
|> List.map TestCaseData
|
||||||
|
|
||||||
[<TestCaseSource (nameof(gymOpeningHoursCases))>]
|
[<TestCaseSource(nameof (gymOpeningHoursCases))>]
|
||||||
let ``GymOpeningHours JSON parse`` (json : string, expected : GymOpeningHours) =
|
let ``GymOpeningHours JSON parse`` (json : string, expected : GymOpeningHours) =
|
||||||
JsonNode.Parse json
|
JsonNode.Parse json |> GymOpeningHours.jsonParse |> shouldEqual expected
|
||||||
|> GymOpeningHours.jsonParse
|
|
||||||
|> shouldEqual expected
|
|
||||||
|
|
||||||
let gymAccessOptionsCases =
|
let gymAccessOptionsCases =
|
||||||
List.allPairs [ true ; false ] [ true ; false ]
|
List.allPairs [ true ; false ] [ true ; false ]
|
||||||
|> List.map (fun (a, b) ->
|
|> List.map (fun (a, b) ->
|
||||||
let s = sprintf """{"pinAccess": %b, "qrCodeAccess": %b}""" a b
|
let s = sprintf """{"pinAccess": %b, "qrCodeAccess": %b}""" a b
|
||||||
s, { GymAccessOptions.PinAccess = a ; QrCodeAccess = b }
|
|
||||||
|
s,
|
||||||
|
{
|
||||||
|
GymAccessOptions.PinAccess = a
|
||||||
|
QrCodeAccess = b
|
||||||
|
}
|
||||||
)
|
)
|
||||||
|> List.map TestCaseData
|
|> List.map TestCaseData
|
||||||
|
|
||||||
[<TestCaseSource (nameof(gymAccessOptionsCases))>]
|
[<TestCaseSource(nameof (gymAccessOptionsCases))>]
|
||||||
let ``GymAccessOptions JSON parse`` (json : string, expected : GymAccessOptions) =
|
let ``GymAccessOptions JSON parse`` (json : string, expected : GymAccessOptions) =
|
||||||
JsonNode.Parse json
|
JsonNode.Parse json |> GymAccessOptions.jsonParse |> shouldEqual expected
|
||||||
|> GymAccessOptions.jsonParse
|
|
||||||
|> shouldEqual expected
|
|
||||||
|
|
||||||
let gymLocationCases =
|
let gymLocationCases =
|
||||||
[
|
[
|
||||||
"""{"latitude": 1.0, "longitude": 3.0}""", { GymLocation.Latitude = 1.0 ; Longitude = 3.0 }
|
"""{"latitude": 1.0, "longitude": 3.0}""",
|
||||||
|
{
|
||||||
|
GymLocation.Latitude = 1.0
|
||||||
|
Longitude = 3.0
|
||||||
|
}
|
||||||
]
|
]
|
||||||
|> List.map TestCaseData
|
|> List.map TestCaseData
|
||||||
|
|
||||||
[<TestCaseSource (nameof(gymLocationCases))>]
|
[<TestCaseSource(nameof (gymLocationCases))>]
|
||||||
let ``GymLocation JSON parse`` (json : string, expected : GymLocation) =
|
let ``GymLocation JSON parse`` (json : string, expected : GymLocation) =
|
||||||
JsonNode.Parse json
|
JsonNode.Parse json |> GymLocation.jsonParse |> shouldEqual expected
|
||||||
|> GymLocation.jsonParse
|
|
||||||
|> shouldEqual expected
|
|
||||||
|
|
||||||
let gymAddressCases =
|
let gymAddressCases =
|
||||||
[
|
[
|
||||||
"""{"addressLine1": "", "postCode": "hi", "town": ""}""", { GymAddress.AddressLine1 = "" ; AddressLine2 = None ; AddressLine3 = None ; County = None ; Postcode = "hi" ; Town = "" }
|
"""{"addressLine1": "", "postCode": "hi", "town": ""}""",
|
||||||
"""{"addressLine1": "", "addressLine2": null, "postCode": "hi", "town": ""}""", { GymAddress.AddressLine1 = "" ; AddressLine2 = None ; AddressLine3 = None ; County = None ; Postcode = "hi" ; Town = "" }
|
{
|
||||||
|
GymAddress.AddressLine1 = ""
|
||||||
|
AddressLine2 = None
|
||||||
|
AddressLine3 = None
|
||||||
|
County = None
|
||||||
|
Postcode = "hi"
|
||||||
|
Town = ""
|
||||||
|
}
|
||||||
|
"""{"addressLine1": "", "addressLine2": null, "postCode": "hi", "town": ""}""",
|
||||||
|
{
|
||||||
|
GymAddress.AddressLine1 = ""
|
||||||
|
AddressLine2 = None
|
||||||
|
AddressLine3 = None
|
||||||
|
County = None
|
||||||
|
Postcode = "hi"
|
||||||
|
Town = ""
|
||||||
|
}
|
||||||
]
|
]
|
||||||
|> List.map TestCaseData
|
|> List.map TestCaseData
|
||||||
|
|
||||||
[<TestCaseSource (nameof(gymAddressCases))>]
|
[<TestCaseSource(nameof (gymAddressCases))>]
|
||||||
let ``GymAddress JSON parse`` (json : string, expected : GymAddress) =
|
let ``GymAddress JSON parse`` (json : string, expected : GymAddress) =
|
||||||
JsonNode.Parse (json, Nullable (JsonNodeOptions(PropertyNameCaseInsensitive = true)))
|
JsonNode.Parse (json, Nullable (JsonNodeOptions (PropertyNameCaseInsensitive = true)))
|
||||||
|> GymAddress.jsonParse
|
|> GymAddress.jsonParse
|
||||||
|> shouldEqual expected
|
|> shouldEqual expected
|
||||||
|
|
||||||
let gymCases =
|
let gymCases =
|
||||||
let ovalJson = """{"name":"London Oval","id":19,"status":2,"address":{"addressLine1":"Canterbury Court","addressLine2":"Units 4, 4A, 5 And 5A","addressLine3":"Kennington Park","town":"LONDON","county":null,"postcode":"SW9 6DE"},"phoneNumber":"+44 3444770005","emailAddress":"info.londonoval@puregym.com","staffMembers":null,"gymOpeningHours":{"isAlwaysOpen":true,"openingHours":[]},"reasonsToJoin":null,"accessOptions":{"pinAccess":true,"qrCodeAccess":true},"virtualTourUrl":null,"personalTrainersUrl":null,"webViewUrl":null,"floorPlanUrl":null,"location":{"longitude":"-0.110252","latitude":"51.480401"},"timeZone":"Europe/London","reopenDate":"2021-04-12T00:00:00+01 Europe/London"}"""
|
let ovalJson =
|
||||||
|
"""{"name":"London Oval","id":19,"status":2,"address":{"addressLine1":"Canterbury Court","addressLine2":"Units 4, 4A, 5 And 5A","addressLine3":"Kennington Park","town":"LONDON","county":null,"postcode":"SW9 6DE"},"phoneNumber":"+44 3444770005","emailAddress":"info.londonoval@puregym.com","staffMembers":null,"gymOpeningHours":{"isAlwaysOpen":true,"openingHours":[]},"reasonsToJoin":null,"accessOptions":{"pinAccess":true,"qrCodeAccess":true},"virtualTourUrl":null,"personalTrainersUrl":null,"webViewUrl":null,"floorPlanUrl":null,"location":{"longitude":"-0.110252","latitude":"51.480401"},"timeZone":"Europe/London","reopenDate":"2021-04-12T00:00:00+01 Europe/London"}"""
|
||||||
|
|
||||||
let oval =
|
let oval =
|
||||||
{
|
{
|
||||||
Gym.Name = "London Oval"
|
Gym.Name = "London Oval"
|
||||||
@@ -84,21 +113,25 @@ module TestJson =
|
|||||||
IsAlwaysOpen = true
|
IsAlwaysOpen = true
|
||||||
OpeningHours = []
|
OpeningHours = []
|
||||||
}
|
}
|
||||||
AccessOptions = { PinAccess = true ; QrCodeAccess = true }
|
AccessOptions =
|
||||||
Location = { Longitude = -0.110252 ; Latitude = 51.480401 }
|
{
|
||||||
|
PinAccess = true
|
||||||
|
QrCodeAccess = true
|
||||||
|
}
|
||||||
|
Location =
|
||||||
|
{
|
||||||
|
Longitude = -0.110252
|
||||||
|
Latitude = 51.480401
|
||||||
|
}
|
||||||
TimeZone = "Europe/London"
|
TimeZone = "Europe/London"
|
||||||
ReopenDate = "2021-04-12T00:00:00+01 Europe/London"
|
ReopenDate = "2021-04-12T00:00:00+01 Europe/London"
|
||||||
}
|
}
|
||||||
[
|
|
||||||
ovalJson, oval
|
|
||||||
]
|
|
||||||
|> List.map TestCaseData
|
|
||||||
|
|
||||||
[<TestCaseSource (nameof(gymCases))>]
|
[ ovalJson, oval ] |> List.map TestCaseData
|
||||||
|
|
||||||
|
[<TestCaseSource(nameof (gymCases))>]
|
||||||
let ``Gym JSON parse`` (json : string, expected : Gym) =
|
let ``Gym JSON parse`` (json : string, expected : Gym) =
|
||||||
JsonNode.Parse json
|
JsonNode.Parse json |> Gym.jsonParse |> shouldEqual expected
|
||||||
|> Gym.jsonParse
|
|
||||||
|> shouldEqual expected
|
|
||||||
|
|
||||||
let memberCases =
|
let memberCases =
|
||||||
let me =
|
let me =
|
||||||
@@ -119,7 +152,9 @@ module TestJson =
|
|||||||
SuspendedReason = 0
|
SuspendedReason = 0
|
||||||
MemberStatus = 2
|
MemberStatus = 2
|
||||||
}
|
}
|
||||||
let meJson = """{
|
|
||||||
|
let meJson =
|
||||||
|
"""{
|
||||||
"id": 1234567,
|
"id": 1234567,
|
||||||
"compoundMemberId": "12A123456",
|
"compoundMemberId": "12A123456",
|
||||||
"firstName": "Patrick",
|
"firstName": "Patrick",
|
||||||
@@ -136,20 +171,16 @@ module TestJson =
|
|||||||
"suspendedReason": 0,
|
"suspendedReason": 0,
|
||||||
"memberStatus": 2
|
"memberStatus": 2
|
||||||
}"""
|
}"""
|
||||||
[
|
|
||||||
meJson, me
|
|
||||||
]
|
|
||||||
|> List.map TestCaseData
|
|
||||||
|
|
||||||
[<TestCaseSource (nameof memberCases)>]
|
[ meJson, me ] |> List.map TestCaseData
|
||||||
|
|
||||||
|
[<TestCaseSource(nameof memberCases)>]
|
||||||
let ``Member JSON parse`` (json : string, expected : Member) =
|
let ``Member JSON parse`` (json : string, expected : Member) =
|
||||||
json
|
json |> JsonNode.Parse |> Member.jsonParse |> shouldEqual expected
|
||||||
|> JsonNode.Parse
|
|
||||||
|> Member.jsonParse
|
|
||||||
|> shouldEqual expected
|
|
||||||
|
|
||||||
let gymAttendanceCases =
|
let gymAttendanceCases =
|
||||||
let json = """{
|
let json =
|
||||||
|
"""{
|
||||||
"description": "65",
|
"description": "65",
|
||||||
"totalPeopleInGym": 65,
|
"totalPeopleInGym": 65,
|
||||||
"totalPeopleInClasses": 2,
|
"totalPeopleInClasses": 2,
|
||||||
@@ -160,6 +191,7 @@ module TestJson =
|
|||||||
"lastRefreshedPeopleInClasses": "2023-12-27T18:50:26.0782286Z",
|
"lastRefreshedPeopleInClasses": "2023-12-27T18:50:26.0782286Z",
|
||||||
"maximumCapacity": 0
|
"maximumCapacity": 0
|
||||||
}"""
|
}"""
|
||||||
|
|
||||||
let expected =
|
let expected =
|
||||||
{
|
{
|
||||||
Description = "65"
|
Description = "65"
|
||||||
@@ -167,47 +199,49 @@ module TestJson =
|
|||||||
TotalPeopleInClasses = 2
|
TotalPeopleInClasses = 2
|
||||||
TotalPeopleSuffix = None
|
TotalPeopleSuffix = None
|
||||||
IsApproximate = false
|
IsApproximate = false
|
||||||
AttendanceTime = DateTime (2023, 12, 27, 18, 54, 09, 510, 169, DateTimeKind.Utc) + TimeSpan.FromTicks 7L
|
AttendanceTime =
|
||||||
LastRefreshed = DateTime (2023, 12, 27, 18, 54, 09, 510, 169, DateTimeKind.Utc) + TimeSpan.FromTicks 7L
|
DateTime (2023, 12, 27, 18, 54, 09, 510, 169, DateTimeKind.Utc)
|
||||||
LastRefreshedPeopleInClasses = DateTime (2023, 12, 27, 18, 50, 26, 078, 228, DateTimeKind.Utc) + TimeSpan.FromTicks 6L
|
+ TimeSpan.FromTicks 7L
|
||||||
|
LastRefreshed =
|
||||||
|
DateTime (2023, 12, 27, 18, 54, 09, 510, 169, DateTimeKind.Utc)
|
||||||
|
+ TimeSpan.FromTicks 7L
|
||||||
|
LastRefreshedPeopleInClasses =
|
||||||
|
DateTime (2023, 12, 27, 18, 50, 26, 078, 228, DateTimeKind.Utc)
|
||||||
|
+ TimeSpan.FromTicks 6L
|
||||||
MaximumCapacity = 0
|
MaximumCapacity = 0
|
||||||
}
|
}
|
||||||
[
|
|
||||||
json, expected
|
|
||||||
]
|
|
||||||
|> List.map TestCaseData
|
|
||||||
|
|
||||||
[<TestCaseSource (nameof gymAttendanceCases)>]
|
[ json, expected ] |> List.map TestCaseData
|
||||||
|
|
||||||
|
[<TestCaseSource(nameof gymAttendanceCases)>]
|
||||||
let ``GymAttendance JSON parse`` (json : string, expected : GymAttendance) =
|
let ``GymAttendance JSON parse`` (json : string, expected : GymAttendance) =
|
||||||
json
|
json |> JsonNode.Parse |> GymAttendance.jsonParse |> shouldEqual expected
|
||||||
|> JsonNode.Parse
|
|
||||||
|> GymAttendance.jsonParse
|
|
||||||
|> shouldEqual expected
|
|
||||||
|
|
||||||
let memberActivityDtoCases =
|
let memberActivityDtoCases =
|
||||||
let json = """{"totalDuration":2217,"averageDuration":48,"totalVisits":46,"totalClasses":0,"isEstimated":false,"lastRefreshed":"2023-12-27T19:00:56.0309892Z"}"""
|
let json =
|
||||||
let value = {
|
"""{"totalDuration":2217,"averageDuration":48,"totalVisits":46,"totalClasses":0,"isEstimated":false,"lastRefreshed":"2023-12-27T19:00:56.0309892Z"}"""
|
||||||
|
|
||||||
|
let value =
|
||||||
|
{
|
||||||
TotalDuration = 2217
|
TotalDuration = 2217
|
||||||
AverageDuration = 48
|
AverageDuration = 48
|
||||||
TotalVisits = 46
|
TotalVisits = 46
|
||||||
TotalClasses = 0
|
TotalClasses = 0
|
||||||
IsEstimated = false
|
IsEstimated = false
|
||||||
LastRefreshed = DateTime (2023, 12, 27, 19, 00, 56, 030, 989, DateTimeKind.Utc) + TimeSpan.FromTicks 2L
|
LastRefreshed =
|
||||||
|
DateTime (2023, 12, 27, 19, 00, 56, 030, 989, DateTimeKind.Utc)
|
||||||
|
+ TimeSpan.FromTicks 2L
|
||||||
}
|
}
|
||||||
[
|
|
||||||
json, value
|
|
||||||
]
|
|
||||||
|> List.map TestCaseData
|
|
||||||
|
|
||||||
[<TestCaseSource (nameof memberActivityDtoCases)>]
|
[ json, value ] |> List.map TestCaseData
|
||||||
|
|
||||||
|
[<TestCaseSource(nameof memberActivityDtoCases)>]
|
||||||
let ``MemberActivityDto JSON parse`` (json : string, expected : MemberActivityDto) =
|
let ``MemberActivityDto JSON parse`` (json : string, expected : MemberActivityDto) =
|
||||||
json
|
json |> JsonNode.Parse |> MemberActivityDto.jsonParse |> shouldEqual expected
|
||||||
|> JsonNode.Parse
|
|
||||||
|> MemberActivityDto.jsonParse
|
|
||||||
|> shouldEqual expected
|
|
||||||
|
|
||||||
let sessionsCases =
|
let sessionsCases =
|
||||||
let json = """{
|
let json =
|
||||||
|
"""{
|
||||||
"Summary":{"Total":{"Activities":0,"Visits":10,"Duration":445},"ThisWeek":{"Activities":0,"Visits":0,"Duration":0}},
|
"Summary":{"Total":{"Activities":0,"Visits":10,"Duration":445},"ThisWeek":{"Activities":0,"Visits":0,"Duration":0}},
|
||||||
"Visits":[
|
"Visits":[
|
||||||
{"IsDurationEstimated":false,"Gym":{"Id":19,"Name":"London Oval","Status":"Blocked","Location":null,"GymAccess":null,"ContactInfo":null,"TimeZone":null},"StartTime":"2023-12-21T10:12:00","Duration":50,"Name":null},
|
{"IsDurationEstimated":false,"Gym":{"Id":19,"Name":"London Oval","Status":"Blocked","Location":null,"GymAccess":null,"ContactInfo":null,"TimeZone":null},"StartTime":"2023-12-21T10:12:00","Duration":50,"Name":null},
|
||||||
@@ -222,10 +256,12 @@ module TestJson =
|
|||||||
{"IsDurationEstimated":false,"Gym":{"Id":19,"Name":"London Oval","Status":"Blocked","Location":null,"GymAccess":null,"ContactInfo":null,"TimeZone":null},"StartTime":"2023-12-01T21:41:00","Duration":29,"Name":null}],
|
{"IsDurationEstimated":false,"Gym":{"Id":19,"Name":"London Oval","Status":"Blocked","Location":null,"GymAccess":null,"ContactInfo":null,"TimeZone":null},"StartTime":"2023-12-01T21:41:00","Duration":29,"Name":null}],
|
||||||
"Activities":[]}
|
"Activities":[]}
|
||||||
"""
|
"""
|
||||||
|
|
||||||
let singleVisit startTime duration =
|
let singleVisit startTime duration =
|
||||||
{
|
{
|
||||||
IsDurationEstimated = false
|
IsDurationEstimated = false
|
||||||
Gym = {
|
Gym =
|
||||||
|
{
|
||||||
Id = 19
|
Id = 19
|
||||||
Name = "London Oval"
|
Name = "London Oval"
|
||||||
Status = "Blocked"
|
Status = "Blocked"
|
||||||
@@ -233,14 +269,19 @@ module TestJson =
|
|||||||
StartTime = startTime
|
StartTime = startTime
|
||||||
Duration = duration
|
Duration = duration
|
||||||
}
|
}
|
||||||
let expected = {
|
|
||||||
Summary = {
|
let expected =
|
||||||
Total = {
|
{
|
||||||
|
Summary =
|
||||||
|
{
|
||||||
|
Total =
|
||||||
|
{
|
||||||
Activities = 0
|
Activities = 0
|
||||||
Visits = 10
|
Visits = 10
|
||||||
Duration = 445
|
Duration = 445
|
||||||
}
|
}
|
||||||
ThisWeek = {
|
ThisWeek =
|
||||||
|
{
|
||||||
Activities = 0
|
Activities = 0
|
||||||
Visits = 0
|
Visits = 0
|
||||||
Duration = 0
|
Duration = 0
|
||||||
@@ -260,12 +301,10 @@ module TestJson =
|
|||||||
singleVisit (DateTime (2023, 12, 01, 21, 41, 00)) 29
|
singleVisit (DateTime (2023, 12, 01, 21, 41, 00)) 29
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
[
|
|
||||||
json, expected
|
|
||||||
]
|
|
||||||
|> List.map TestCaseData
|
|
||||||
|
|
||||||
[<TestCaseSource (nameof sessionsCases)>]
|
[ json, expected ] |> List.map TestCaseData
|
||||||
|
|
||||||
|
[<TestCaseSource(nameof sessionsCases)>]
|
||||||
let ``Sessions JSON parse`` (json : string, expected : Sessions) =
|
let ``Sessions JSON parse`` (json : string, expected : Sessions) =
|
||||||
json
|
json
|
||||||
|> fun o -> JsonNode.Parse (o, Nullable (JsonNodeOptions (PropertyNameCaseInsensitive = true)))
|
|> fun o -> JsonNode.Parse (o, Nullable (JsonNodeOptions (PropertyNameCaseInsensitive = true)))
|
||||||
|
@@ -6,8 +6,6 @@ Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "PureGym.App", "PureGym.App\
|
|||||||
EndProject
|
EndProject
|
||||||
Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "PureGym.Test", "PureGym.Test\PureGym.Test.fsproj", "{F09DF609-5F53-4BB3-BD64-DDB136CD4D2E}"
|
Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "PureGym.Test", "PureGym.Test\PureGym.Test.fsproj", "{F09DF609-5F53-4BB3-BD64-DDB136CD4D2E}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "MyriadPlugin", "..\MyriadPlugin\MyriadPlugin\MyriadPlugin.fsproj", "{5D1BEE42-EA5E-4F1B-8CDA-37846E68D76E}"
|
|
||||||
EndProject
|
|
||||||
Global
|
Global
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
Debug|Any CPU = Debug|Any CPU
|
Debug|Any CPU = Debug|Any CPU
|
||||||
@@ -26,9 +24,5 @@ Global
|
|||||||
{F09DF609-5F53-4BB3-BD64-DDB136CD4D2E}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
{F09DF609-5F53-4BB3-BD64-DDB136CD4D2E}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
{F09DF609-5F53-4BB3-BD64-DDB136CD4D2E}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
{F09DF609-5F53-4BB3-BD64-DDB136CD4D2E}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
{F09DF609-5F53-4BB3-BD64-DDB136CD4D2E}.Release|Any CPU.Build.0 = Release|Any CPU
|
{F09DF609-5F53-4BB3-BD64-DDB136CD4D2E}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
{5D1BEE42-EA5E-4F1B-8CDA-37846E68D76E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
||||||
{5D1BEE42-EA5E-4F1B-8CDA-37846E68D76E}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
||||||
{5D1BEE42-EA5E-4F1B-8CDA-37846E68D76E}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
||||||
{5D1BEE42-EA5E-4F1B-8CDA-37846E68D76E}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
EndGlobal
|
EndGlobal
|
||||||
|
@@ -3,8 +3,7 @@ namespace PureGym
|
|||||||
open System
|
open System
|
||||||
open System.Text.Json.Serialization
|
open System.Text.Json.Serialization
|
||||||
|
|
||||||
/// Describes the opening hours of a given gym.
|
[<WoofWare.Myriad.Plugins.JsonParse>]
|
||||||
[<MyriadPlugin.JsonParse>]
|
|
||||||
type GymOpeningHours =
|
type GymOpeningHours =
|
||||||
{
|
{
|
||||||
/// If this is true, there should be no OpeningHours (but nothing enforces that).
|
/// If this is true, there should be no OpeningHours (but nothing enforces that).
|
||||||
@@ -21,7 +20,7 @@ type GymOpeningHours =
|
|||||||
this.OpeningHours |> String.concat ", "
|
this.OpeningHours |> String.concat ", "
|
||||||
|
|
||||||
/// How a human can authenticate with a gym when they physically try to enter it
|
/// How a human can authenticate with a gym when they physically try to enter it
|
||||||
[<MyriadPlugin.JsonParse>]
|
[<WoofWare.Myriad.Plugins.JsonParse>]
|
||||||
type GymAccessOptions =
|
type GymAccessOptions =
|
||||||
{
|
{
|
||||||
/// This gym has PIN entry pads
|
/// This gym has PIN entry pads
|
||||||
@@ -35,19 +34,19 @@ type GymAccessOptions =
|
|||||||
$"Pin access: %c{Char.emoji this.PinAccess}; QR code access: %c{Char.emoji this.QrCodeAccess}"
|
$"Pin access: %c{Char.emoji this.PinAccess}; QR code access: %c{Char.emoji this.QrCodeAccess}"
|
||||||
|
|
||||||
/// Where a gym is on the Earth
|
/// Where a gym is on the Earth
|
||||||
[<MyriadPlugin.JsonParse>]
|
[<WoofWare.Myriad.Plugins.JsonParse>]
|
||||||
type GymLocation =
|
type GymLocation =
|
||||||
{
|
{
|
||||||
/// Measured in degrees
|
/// Measured in degrees
|
||||||
[<JsonNumberHandling (JsonNumberHandling.AllowReadingFromString)>]
|
[<JsonNumberHandling(JsonNumberHandling.AllowReadingFromString)>]
|
||||||
Longitude : float
|
Longitude : float
|
||||||
/// Measured in degrees
|
/// Measured in degrees
|
||||||
[<JsonNumberHandling (JsonNumberHandling.AllowReadingFromString)>]
|
[<JsonNumberHandling(JsonNumberHandling.AllowReadingFromString)>]
|
||||||
Latitude : float
|
Latitude : float
|
||||||
}
|
}
|
||||||
|
|
||||||
/// The postal address of a gym
|
/// The postal address of a gym
|
||||||
[<MyriadPlugin.JsonParse>]
|
[<WoofWare.Myriad.Plugins.JsonParse>]
|
||||||
type GymAddress =
|
type GymAddress =
|
||||||
{
|
{
|
||||||
/// E.g. "Canterbury Court"
|
/// E.g. "Canterbury Court"
|
||||||
@@ -82,7 +81,7 @@ type GymAddress =
|
|||||||
|> String.concat "\n"
|
|> String.concat "\n"
|
||||||
|
|
||||||
/// Metadata about a physical gym
|
/// Metadata about a physical gym
|
||||||
[<MyriadPlugin.JsonParse>]
|
[<WoofWare.Myriad.Plugins.JsonParse>]
|
||||||
type Gym =
|
type Gym =
|
||||||
{
|
{
|
||||||
// The following fields are returned but are always null
|
// The following fields are returned but are always null
|
||||||
@@ -137,7 +136,7 @@ Opening hours: %s{string<GymOpeningHours> this.GymOpeningHours}
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
/// A human member of PureGym
|
/// A human member of PureGym
|
||||||
[<MyriadPlugin.JsonParse>]
|
[<WoofWare.Myriad.Plugins.JsonParse>]
|
||||||
type Member =
|
type Member =
|
||||||
{
|
{
|
||||||
/// This member's ID. This is a fairly large number.
|
/// This member's ID. This is a fairly large number.
|
||||||
@@ -173,7 +172,7 @@ type Member =
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// Statistics for how many people are currently at a gym
|
/// Statistics for how many people are currently at a gym
|
||||||
[<MyriadPlugin.JsonParse>]
|
[<WoofWare.Myriad.Plugins.JsonParse>]
|
||||||
type GymAttendance =
|
type GymAttendance =
|
||||||
{
|
{
|
||||||
/// This appears always to be just equal to TotalPeopleInGym, but a string.
|
/// This appears always to be just equal to TotalPeopleInGym, but a string.
|
||||||
@@ -242,7 +241,7 @@ type MemberActivityThisMonth =
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// Don't use this type. It's public because System.Text.Json can't do private types.
|
/// Don't use this type. It's public because System.Text.Json can't do private types.
|
||||||
[<MyriadPlugin.JsonParse>]
|
[<WoofWare.Myriad.Plugins.JsonParse>]
|
||||||
type MemberActivityDto =
|
type MemberActivityDto =
|
||||||
{
|
{
|
||||||
[<JsonRequired>]
|
[<JsonRequired>]
|
||||||
@@ -269,7 +268,7 @@ type MemberActivityDto =
|
|||||||
LastRefreshed = this.LastRefreshed
|
LastRefreshed = this.LastRefreshed
|
||||||
}
|
}
|
||||||
|
|
||||||
[<MyriadPlugin.JsonParse>]
|
[<WoofWare.Myriad.Plugins.JsonParse>]
|
||||||
type SessionsAggregate =
|
type SessionsAggregate =
|
||||||
{
|
{
|
||||||
/// Number of gym "activities" within some query-defined time period; presumably this is like classes?
|
/// Number of gym "activities" within some query-defined time period; presumably this is like classes?
|
||||||
@@ -282,7 +281,7 @@ type SessionsAggregate =
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// The DTO for gym info returned from the Sessions endpoint.
|
/// The DTO for gym info returned from the Sessions endpoint.
|
||||||
[<MyriadPlugin.JsonParse>]
|
[<WoofWare.Myriad.Plugins.JsonParse>]
|
||||||
type VisitGym =
|
type VisitGym =
|
||||||
{
|
{
|
||||||
// Omitting Location, GymAccess, ContactInfo, TimeZone because these were all null for me
|
// Omitting Location, GymAccess, ContactInfo, TimeZone because these were all null for me
|
||||||
@@ -295,7 +294,7 @@ type VisitGym =
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// Summary of a single visit to a gym.
|
/// Summary of a single visit to a gym.
|
||||||
[<MyriadPlugin.JsonParse>]
|
[<WoofWare.Myriad.Plugins.JsonParse>]
|
||||||
type Visit =
|
type Visit =
|
||||||
{
|
{
|
||||||
// Omitted Name because it always was null for me
|
// Omitted Name because it always was null for me
|
||||||
@@ -315,7 +314,7 @@ type Visit =
|
|||||||
$"%s{this.Gym.Name}: %s{startTime} (%i{this.Duration} minutes)"
|
$"%s{this.Gym.Name}: %s{startTime} (%i{this.Duration} minutes)"
|
||||||
|
|
||||||
/// Aggregate statistics for gym visits across a time period.
|
/// Aggregate statistics for gym visits across a time period.
|
||||||
[<MyriadPlugin.JsonParse>]
|
[<WoofWare.Myriad.Plugins.JsonParse>]
|
||||||
type SessionsSummary =
|
type SessionsSummary =
|
||||||
{
|
{
|
||||||
/// Aggregate stats for gym visits within the query-dependent time period.
|
/// Aggregate stats for gym visits within the query-dependent time period.
|
||||||
@@ -328,7 +327,7 @@ type SessionsSummary =
|
|||||||
override this.ToString () =
|
override this.ToString () =
|
||||||
$"%i{this.Total.Visits} visits, totalling %i{this.Total.Duration} minutes"
|
$"%i{this.Total.Visits} visits, totalling %i{this.Total.Duration} minutes"
|
||||||
|
|
||||||
[<MyriadPlugin.JsonParse>]
|
[<WoofWare.Myriad.Plugins.JsonParse>]
|
||||||
type Sessions =
|
type Sessions =
|
||||||
{
|
{
|
||||||
Summary : SessionsSummary
|
Summary : SessionsSummary
|
||||||
|
@@ -10,16 +10,18 @@ namespace PureGym
|
|||||||
[<CompilationRepresentation(CompilationRepresentationFlags.ModuleSuffix)>]
|
[<CompilationRepresentation(CompilationRepresentationFlags.ModuleSuffix)>]
|
||||||
module GymOpeningHours =
|
module GymOpeningHours =
|
||||||
/// Parse from a JSON node.
|
/// Parse from a JSON node.
|
||||||
let jsonParse (node: System.Text.Json.Nodes.JsonNode) : GymOpeningHours =
|
let jsonParse (node : System.Text.Json.Nodes.JsonNode) : GymOpeningHours =
|
||||||
let OpeningHours =
|
let OpeningHours =
|
||||||
node.["openingHours"].AsArray()
|
node.["openingHours"].AsArray ()
|
||||||
|> Seq.map (fun elt -> elt.AsValue().GetValue<string>())
|
|> Seq.map (fun elt -> elt.AsValue().GetValue<string> ())
|
||||||
|> List.ofSeq
|
|> List.ofSeq
|
||||||
|
|
||||||
let IsAlwaysOpen = node.["isAlwaysOpen"].AsValue().GetValue<bool>()
|
let IsAlwaysOpen = node.["isAlwaysOpen"].AsValue().GetValue<bool> ()
|
||||||
|
|
||||||
{ IsAlwaysOpen = IsAlwaysOpen
|
{
|
||||||
OpeningHours = OpeningHours }
|
IsAlwaysOpen = IsAlwaysOpen
|
||||||
|
OpeningHours = OpeningHours
|
||||||
|
}
|
||||||
namespace PureGym
|
namespace PureGym
|
||||||
|
|
||||||
/// Module containing JSON parsing methods for the GymAccessOptions type
|
/// Module containing JSON parsing methods for the GymAccessOptions type
|
||||||
@@ -27,12 +29,14 @@ namespace PureGym
|
|||||||
[<CompilationRepresentation(CompilationRepresentationFlags.ModuleSuffix)>]
|
[<CompilationRepresentation(CompilationRepresentationFlags.ModuleSuffix)>]
|
||||||
module GymAccessOptions =
|
module GymAccessOptions =
|
||||||
/// Parse from a JSON node.
|
/// Parse from a JSON node.
|
||||||
let jsonParse (node: System.Text.Json.Nodes.JsonNode) : GymAccessOptions =
|
let jsonParse (node : System.Text.Json.Nodes.JsonNode) : GymAccessOptions =
|
||||||
let QrCodeAccess = node.["qrCodeAccess"].AsValue().GetValue<bool>()
|
let QrCodeAccess = node.["qrCodeAccess"].AsValue().GetValue<bool> ()
|
||||||
let PinAccess = node.["pinAccess"].AsValue().GetValue<bool>()
|
let PinAccess = node.["pinAccess"].AsValue().GetValue<bool> ()
|
||||||
|
|
||||||
{ PinAccess = PinAccess
|
{
|
||||||
QrCodeAccess = QrCodeAccess }
|
PinAccess = PinAccess
|
||||||
|
QrCodeAccess = QrCodeAccess
|
||||||
|
}
|
||||||
namespace PureGym
|
namespace PureGym
|
||||||
|
|
||||||
/// Module containing JSON parsing methods for the GymLocation type
|
/// Module containing JSON parsing methods for the GymLocation type
|
||||||
@@ -40,16 +44,16 @@ namespace PureGym
|
|||||||
[<CompilationRepresentation(CompilationRepresentationFlags.ModuleSuffix)>]
|
[<CompilationRepresentation(CompilationRepresentationFlags.ModuleSuffix)>]
|
||||||
module GymLocation =
|
module GymLocation =
|
||||||
/// Parse from a JSON node.
|
/// Parse from a JSON node.
|
||||||
let jsonParse (node: System.Text.Json.Nodes.JsonNode) : GymLocation =
|
let jsonParse (node : System.Text.Json.Nodes.JsonNode) : GymLocation =
|
||||||
let Latitude =
|
let Latitude =
|
||||||
try
|
try
|
||||||
node.["latitude"].AsValue().GetValue<float>()
|
node.["latitude"].AsValue().GetValue<float> ()
|
||||||
with :? System.InvalidOperationException as exc ->
|
with :? System.InvalidOperationException as exc ->
|
||||||
if exc.Message.Contains "cannot be converted to" then
|
if exc.Message.Contains "cannot be converted to" then
|
||||||
if
|
if
|
||||||
System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString = System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString
|
System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString = System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString
|
||||||
then
|
then
|
||||||
node.["latitude"].AsValue().GetValue<string>() |> System.Double.Parse
|
node.["latitude"].AsValue().GetValue<string> () |> System.Double.Parse
|
||||||
else
|
else
|
||||||
reraise ()
|
reraise ()
|
||||||
else
|
else
|
||||||
@@ -57,20 +61,22 @@ module GymLocation =
|
|||||||
|
|
||||||
let Longitude =
|
let Longitude =
|
||||||
try
|
try
|
||||||
node.["longitude"].AsValue().GetValue<float>()
|
node.["longitude"].AsValue().GetValue<float> ()
|
||||||
with :? System.InvalidOperationException as exc ->
|
with :? System.InvalidOperationException as exc ->
|
||||||
if exc.Message.Contains "cannot be converted to" then
|
if exc.Message.Contains "cannot be converted to" then
|
||||||
if
|
if
|
||||||
System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString = System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString
|
System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString = System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString
|
||||||
then
|
then
|
||||||
node.["longitude"].AsValue().GetValue<string>() |> System.Double.Parse
|
node.["longitude"].AsValue().GetValue<string> () |> System.Double.Parse
|
||||||
else
|
else
|
||||||
reraise ()
|
reraise ()
|
||||||
else
|
else
|
||||||
reraise ()
|
reraise ()
|
||||||
|
|
||||||
{ Longitude = Longitude
|
{
|
||||||
Latitude = Latitude }
|
Longitude = Longitude
|
||||||
|
Latitude = Latitude
|
||||||
|
}
|
||||||
namespace PureGym
|
namespace PureGym
|
||||||
|
|
||||||
/// Module containing JSON parsing methods for the GymAddress type
|
/// Module containing JSON parsing methods for the GymAddress type
|
||||||
@@ -78,34 +84,36 @@ namespace PureGym
|
|||||||
[<CompilationRepresentation(CompilationRepresentationFlags.ModuleSuffix)>]
|
[<CompilationRepresentation(CompilationRepresentationFlags.ModuleSuffix)>]
|
||||||
module GymAddress =
|
module GymAddress =
|
||||||
/// Parse from a JSON node.
|
/// Parse from a JSON node.
|
||||||
let jsonParse (node: System.Text.Json.Nodes.JsonNode) : GymAddress =
|
let jsonParse (node : System.Text.Json.Nodes.JsonNode) : GymAddress =
|
||||||
let Postcode = node.["postcode"].AsValue().GetValue<string>()
|
let Postcode = node.["postcode"].AsValue().GetValue<string> ()
|
||||||
|
|
||||||
let County =
|
let County =
|
||||||
match node.["county"] with
|
match node.["county"] with
|
||||||
| null -> None
|
| null -> None
|
||||||
| v -> v.AsValue().GetValue<string>() |> Some
|
| v -> v.AsValue().GetValue<string> () |> Some
|
||||||
|
|
||||||
let Town = node.["town"].AsValue().GetValue<string>()
|
let Town = node.["town"].AsValue().GetValue<string> ()
|
||||||
|
|
||||||
let AddressLine3 =
|
let AddressLine3 =
|
||||||
match node.["addressLine3"] with
|
match node.["addressLine3"] with
|
||||||
| null -> None
|
| null -> None
|
||||||
| v -> v.AsValue().GetValue<string>() |> Some
|
| v -> v.AsValue().GetValue<string> () |> Some
|
||||||
|
|
||||||
let AddressLine2 =
|
let AddressLine2 =
|
||||||
match node.["addressLine2"] with
|
match node.["addressLine2"] with
|
||||||
| null -> None
|
| null -> None
|
||||||
| v -> v.AsValue().GetValue<string>() |> Some
|
| v -> v.AsValue().GetValue<string> () |> Some
|
||||||
|
|
||||||
let AddressLine1 = node.["addressLine1"].AsValue().GetValue<string>()
|
let AddressLine1 = node.["addressLine1"].AsValue().GetValue<string> ()
|
||||||
|
|
||||||
{ AddressLine1 = AddressLine1
|
{
|
||||||
|
AddressLine1 = AddressLine1
|
||||||
AddressLine2 = AddressLine2
|
AddressLine2 = AddressLine2
|
||||||
AddressLine3 = AddressLine3
|
AddressLine3 = AddressLine3
|
||||||
Town = Town
|
Town = Town
|
||||||
County = County
|
County = County
|
||||||
Postcode = Postcode }
|
Postcode = Postcode
|
||||||
|
}
|
||||||
namespace PureGym
|
namespace PureGym
|
||||||
|
|
||||||
/// Module containing JSON parsing methods for the Gym type
|
/// Module containing JSON parsing methods for the Gym type
|
||||||
@@ -113,20 +121,21 @@ namespace PureGym
|
|||||||
[<CompilationRepresentation(CompilationRepresentationFlags.ModuleSuffix)>]
|
[<CompilationRepresentation(CompilationRepresentationFlags.ModuleSuffix)>]
|
||||||
module Gym =
|
module Gym =
|
||||||
/// Parse from a JSON node.
|
/// Parse from a JSON node.
|
||||||
let jsonParse (node: System.Text.Json.Nodes.JsonNode) : Gym =
|
let jsonParse (node : System.Text.Json.Nodes.JsonNode) : Gym =
|
||||||
let ReopenDate = node.["reopenDate"].AsValue().GetValue<string>()
|
let ReopenDate = node.["reopenDate"].AsValue().GetValue<string> ()
|
||||||
let TimeZone = node.["timeZone"].AsValue().GetValue<string>()
|
let TimeZone = node.["timeZone"].AsValue().GetValue<string> ()
|
||||||
let Location = GymLocation.jsonParse node.["location"]
|
let Location = GymLocation.jsonParse node.["location"]
|
||||||
let AccessOptions = GymAccessOptions.jsonParse node.["accessOptions"]
|
let AccessOptions = GymAccessOptions.jsonParse node.["accessOptions"]
|
||||||
let GymOpeningHours = GymOpeningHours.jsonParse node.["gymOpeningHours"]
|
let GymOpeningHours = GymOpeningHours.jsonParse node.["gymOpeningHours"]
|
||||||
let EmailAddress = node.["emailAddress"].AsValue().GetValue<string>()
|
let EmailAddress = node.["emailAddress"].AsValue().GetValue<string> ()
|
||||||
let PhoneNumber = node.["phoneNumber"].AsValue().GetValue<string>()
|
let PhoneNumber = node.["phoneNumber"].AsValue().GetValue<string> ()
|
||||||
let Address = GymAddress.jsonParse node.["address"]
|
let Address = GymAddress.jsonParse node.["address"]
|
||||||
let Status = node.["status"].AsValue().GetValue<int>()
|
let Status = node.["status"].AsValue().GetValue<int> ()
|
||||||
let Id = node.["id"].AsValue().GetValue<int>()
|
let Id = node.["id"].AsValue().GetValue<int> ()
|
||||||
let Name = node.["name"].AsValue().GetValue<string>()
|
let Name = node.["name"].AsValue().GetValue<string> ()
|
||||||
|
|
||||||
{ Name = Name
|
{
|
||||||
|
Name = Name
|
||||||
Id = Id
|
Id = Id
|
||||||
Status = Status
|
Status = Status
|
||||||
Address = Address
|
Address = Address
|
||||||
@@ -136,7 +145,8 @@ module Gym =
|
|||||||
AccessOptions = AccessOptions
|
AccessOptions = AccessOptions
|
||||||
Location = Location
|
Location = Location
|
||||||
TimeZone = TimeZone
|
TimeZone = TimeZone
|
||||||
ReopenDate = ReopenDate }
|
ReopenDate = ReopenDate
|
||||||
|
}
|
||||||
namespace PureGym
|
namespace PureGym
|
||||||
|
|
||||||
/// Module containing JSON parsing methods for the Member type
|
/// Module containing JSON parsing methods for the Member type
|
||||||
@@ -144,27 +154,28 @@ namespace PureGym
|
|||||||
[<CompilationRepresentation(CompilationRepresentationFlags.ModuleSuffix)>]
|
[<CompilationRepresentation(CompilationRepresentationFlags.ModuleSuffix)>]
|
||||||
module Member =
|
module Member =
|
||||||
/// Parse from a JSON node.
|
/// Parse from a JSON node.
|
||||||
let jsonParse (node: System.Text.Json.Nodes.JsonNode) : Member =
|
let jsonParse (node : System.Text.Json.Nodes.JsonNode) : Member =
|
||||||
let MemberStatus = node.["memberStatus"].AsValue().GetValue<int>()
|
let MemberStatus = node.["memberStatus"].AsValue().GetValue<int> ()
|
||||||
let SuspendedReason = node.["suspendedReason"].AsValue().GetValue<int>()
|
let SuspendedReason = node.["suspendedReason"].AsValue().GetValue<int> ()
|
||||||
let MembershipLevel = node.["membershipLevel"].AsValue().GetValue<int>()
|
let MembershipLevel = node.["membershipLevel"].AsValue().GetValue<int> ()
|
||||||
let MembershipName = node.["membershipName"].AsValue().GetValue<string>()
|
let MembershipName = node.["membershipName"].AsValue().GetValue<string> ()
|
||||||
let Postcode = node.["postCode"].AsValue().GetValue<string>()
|
let Postcode = node.["postCode"].AsValue().GetValue<string> ()
|
||||||
let MobileNumber = node.["mobileNumber"].AsValue().GetValue<string>()
|
let MobileNumber = node.["mobileNumber"].AsValue().GetValue<string> ()
|
||||||
|
|
||||||
let DateOfBirth =
|
let DateOfBirth =
|
||||||
node.["dateofBirth"].AsValue().GetValue<string>() |> System.DateOnly.Parse
|
node.["dateofBirth"].AsValue().GetValue<string> () |> System.DateOnly.Parse
|
||||||
|
|
||||||
let GymAccessPin = node.["gymAccessPin"].AsValue().GetValue<string>()
|
let GymAccessPin = node.["gymAccessPin"].AsValue().GetValue<string> ()
|
||||||
let EmailAddress = node.["emailAddress"].AsValue().GetValue<string>()
|
let EmailAddress = node.["emailAddress"].AsValue().GetValue<string> ()
|
||||||
let HomeGymName = node.["homeGymName"].AsValue().GetValue<string>()
|
let HomeGymName = node.["homeGymName"].AsValue().GetValue<string> ()
|
||||||
let HomeGymId = node.["homeGymId"].AsValue().GetValue<int>()
|
let HomeGymId = node.["homeGymId"].AsValue().GetValue<int> ()
|
||||||
let LastName = node.["lastName"].AsValue().GetValue<string>()
|
let LastName = node.["lastName"].AsValue().GetValue<string> ()
|
||||||
let FirstName = node.["firstName"].AsValue().GetValue<string>()
|
let FirstName = node.["firstName"].AsValue().GetValue<string> ()
|
||||||
let CompoundMemberId = node.["compoundMemberId"].AsValue().GetValue<string>()
|
let CompoundMemberId = node.["compoundMemberId"].AsValue().GetValue<string> ()
|
||||||
let Id = node.["id"].AsValue().GetValue<int>()
|
let Id = node.["id"].AsValue().GetValue<int> ()
|
||||||
|
|
||||||
{ Id = Id
|
{
|
||||||
|
Id = Id
|
||||||
CompoundMemberId = CompoundMemberId
|
CompoundMemberId = CompoundMemberId
|
||||||
FirstName = FirstName
|
FirstName = FirstName
|
||||||
LastName = LastName
|
LastName = LastName
|
||||||
@@ -178,7 +189,8 @@ module Member =
|
|||||||
MembershipName = MembershipName
|
MembershipName = MembershipName
|
||||||
MembershipLevel = MembershipLevel
|
MembershipLevel = MembershipLevel
|
||||||
SuspendedReason = SuspendedReason
|
SuspendedReason = SuspendedReason
|
||||||
MemberStatus = MemberStatus }
|
MemberStatus = MemberStatus
|
||||||
|
}
|
||||||
namespace PureGym
|
namespace PureGym
|
||||||
|
|
||||||
/// Module containing JSON parsing methods for the GymAttendance type
|
/// Module containing JSON parsing methods for the GymAttendance type
|
||||||
@@ -186,31 +198,32 @@ namespace PureGym
|
|||||||
[<CompilationRepresentation(CompilationRepresentationFlags.ModuleSuffix)>]
|
[<CompilationRepresentation(CompilationRepresentationFlags.ModuleSuffix)>]
|
||||||
module GymAttendance =
|
module GymAttendance =
|
||||||
/// Parse from a JSON node.
|
/// Parse from a JSON node.
|
||||||
let jsonParse (node: System.Text.Json.Nodes.JsonNode) : GymAttendance =
|
let jsonParse (node : System.Text.Json.Nodes.JsonNode) : GymAttendance =
|
||||||
let MaximumCapacity = node.["maximumCapacity"].AsValue().GetValue<int>()
|
let MaximumCapacity = node.["maximumCapacity"].AsValue().GetValue<int> ()
|
||||||
|
|
||||||
let LastRefreshedPeopleInClasses =
|
let LastRefreshedPeopleInClasses =
|
||||||
node.["lastRefreshedPeopleInClasses"].AsValue().GetValue<string>()
|
node.["lastRefreshedPeopleInClasses"].AsValue().GetValue<string> ()
|
||||||
|> System.DateTime.Parse
|
|> System.DateTime.Parse
|
||||||
|
|
||||||
let LastRefreshed =
|
let LastRefreshed =
|
||||||
node.["lastRefreshed"].AsValue().GetValue<string>() |> System.DateTime.Parse
|
node.["lastRefreshed"].AsValue().GetValue<string> () |> System.DateTime.Parse
|
||||||
|
|
||||||
let AttendanceTime =
|
let AttendanceTime =
|
||||||
node.["attendanceTime"].AsValue().GetValue<string>() |> System.DateTime.Parse
|
node.["attendanceTime"].AsValue().GetValue<string> () |> System.DateTime.Parse
|
||||||
|
|
||||||
let IsApproximate = node.["isApproximate"].AsValue().GetValue<bool>()
|
let IsApproximate = node.["isApproximate"].AsValue().GetValue<bool> ()
|
||||||
|
|
||||||
let TotalPeopleSuffix =
|
let TotalPeopleSuffix =
|
||||||
match node.["totalPeopleSuffix"] with
|
match node.["totalPeopleSuffix"] with
|
||||||
| null -> None
|
| null -> None
|
||||||
| v -> v.AsValue().GetValue<string>() |> Some
|
| v -> v.AsValue().GetValue<string> () |> Some
|
||||||
|
|
||||||
let TotalPeopleInClasses = node.["totalPeopleInClasses"].AsValue().GetValue<int>()
|
let TotalPeopleInClasses = node.["totalPeopleInClasses"].AsValue().GetValue<int> ()
|
||||||
let TotalPeopleInGym = node.["totalPeopleInGym"].AsValue().GetValue<int>()
|
let TotalPeopleInGym = node.["totalPeopleInGym"].AsValue().GetValue<int> ()
|
||||||
let Description = node.["description"].AsValue().GetValue<string>()
|
let Description = node.["description"].AsValue().GetValue<string> ()
|
||||||
|
|
||||||
{ Description = Description
|
{
|
||||||
|
Description = Description
|
||||||
TotalPeopleInGym = TotalPeopleInGym
|
TotalPeopleInGym = TotalPeopleInGym
|
||||||
TotalPeopleInClasses = TotalPeopleInClasses
|
TotalPeopleInClasses = TotalPeopleInClasses
|
||||||
TotalPeopleSuffix = TotalPeopleSuffix
|
TotalPeopleSuffix = TotalPeopleSuffix
|
||||||
@@ -218,7 +231,8 @@ module GymAttendance =
|
|||||||
AttendanceTime = AttendanceTime
|
AttendanceTime = AttendanceTime
|
||||||
LastRefreshed = LastRefreshed
|
LastRefreshed = LastRefreshed
|
||||||
LastRefreshedPeopleInClasses = LastRefreshedPeopleInClasses
|
LastRefreshedPeopleInClasses = LastRefreshedPeopleInClasses
|
||||||
MaximumCapacity = MaximumCapacity }
|
MaximumCapacity = MaximumCapacity
|
||||||
|
}
|
||||||
namespace PureGym
|
namespace PureGym
|
||||||
|
|
||||||
/// Module containing JSON parsing methods for the MemberActivityDto type
|
/// Module containing JSON parsing methods for the MemberActivityDto type
|
||||||
@@ -226,22 +240,24 @@ namespace PureGym
|
|||||||
[<CompilationRepresentation(CompilationRepresentationFlags.ModuleSuffix)>]
|
[<CompilationRepresentation(CompilationRepresentationFlags.ModuleSuffix)>]
|
||||||
module MemberActivityDto =
|
module MemberActivityDto =
|
||||||
/// Parse from a JSON node.
|
/// Parse from a JSON node.
|
||||||
let jsonParse (node: System.Text.Json.Nodes.JsonNode) : MemberActivityDto =
|
let jsonParse (node : System.Text.Json.Nodes.JsonNode) : MemberActivityDto =
|
||||||
let LastRefreshed =
|
let LastRefreshed =
|
||||||
node.["lastRefreshed"].AsValue().GetValue<string>() |> System.DateTime.Parse
|
node.["lastRefreshed"].AsValue().GetValue<string> () |> System.DateTime.Parse
|
||||||
|
|
||||||
let IsEstimated = node.["isEstimated"].AsValue().GetValue<bool>()
|
let IsEstimated = node.["isEstimated"].AsValue().GetValue<bool> ()
|
||||||
let TotalClasses = node.["totalClasses"].AsValue().GetValue<int>()
|
let TotalClasses = node.["totalClasses"].AsValue().GetValue<int> ()
|
||||||
let TotalVisits = node.["totalVisits"].AsValue().GetValue<int>()
|
let TotalVisits = node.["totalVisits"].AsValue().GetValue<int> ()
|
||||||
let AverageDuration = node.["averageDuration"].AsValue().GetValue<int>()
|
let AverageDuration = node.["averageDuration"].AsValue().GetValue<int> ()
|
||||||
let TotalDuration = node.["totalDuration"].AsValue().GetValue<int>()
|
let TotalDuration = node.["totalDuration"].AsValue().GetValue<int> ()
|
||||||
|
|
||||||
{ TotalDuration = TotalDuration
|
{
|
||||||
|
TotalDuration = TotalDuration
|
||||||
AverageDuration = AverageDuration
|
AverageDuration = AverageDuration
|
||||||
TotalVisits = TotalVisits
|
TotalVisits = TotalVisits
|
||||||
TotalClasses = TotalClasses
|
TotalClasses = TotalClasses
|
||||||
IsEstimated = IsEstimated
|
IsEstimated = IsEstimated
|
||||||
LastRefreshed = LastRefreshed }
|
LastRefreshed = LastRefreshed
|
||||||
|
}
|
||||||
namespace PureGym
|
namespace PureGym
|
||||||
|
|
||||||
/// Module containing JSON parsing methods for the SessionsAggregate type
|
/// Module containing JSON parsing methods for the SessionsAggregate type
|
||||||
@@ -249,14 +265,16 @@ namespace PureGym
|
|||||||
[<CompilationRepresentation(CompilationRepresentationFlags.ModuleSuffix)>]
|
[<CompilationRepresentation(CompilationRepresentationFlags.ModuleSuffix)>]
|
||||||
module SessionsAggregate =
|
module SessionsAggregate =
|
||||||
/// Parse from a JSON node.
|
/// Parse from a JSON node.
|
||||||
let jsonParse (node: System.Text.Json.Nodes.JsonNode) : SessionsAggregate =
|
let jsonParse (node : System.Text.Json.Nodes.JsonNode) : SessionsAggregate =
|
||||||
let Duration = node.["duration"].AsValue().GetValue<int>()
|
let Duration = node.["duration"].AsValue().GetValue<int> ()
|
||||||
let Visits = node.["visits"].AsValue().GetValue<int>()
|
let Visits = node.["visits"].AsValue().GetValue<int> ()
|
||||||
let Activities = node.["activities"].AsValue().GetValue<int>()
|
let Activities = node.["activities"].AsValue().GetValue<int> ()
|
||||||
|
|
||||||
{ Activities = Activities
|
{
|
||||||
|
Activities = Activities
|
||||||
Visits = Visits
|
Visits = Visits
|
||||||
Duration = Duration }
|
Duration = Duration
|
||||||
|
}
|
||||||
namespace PureGym
|
namespace PureGym
|
||||||
|
|
||||||
/// Module containing JSON parsing methods for the VisitGym type
|
/// Module containing JSON parsing methods for the VisitGym type
|
||||||
@@ -264,14 +282,16 @@ namespace PureGym
|
|||||||
[<CompilationRepresentation(CompilationRepresentationFlags.ModuleSuffix)>]
|
[<CompilationRepresentation(CompilationRepresentationFlags.ModuleSuffix)>]
|
||||||
module VisitGym =
|
module VisitGym =
|
||||||
/// Parse from a JSON node.
|
/// Parse from a JSON node.
|
||||||
let jsonParse (node: System.Text.Json.Nodes.JsonNode) : VisitGym =
|
let jsonParse (node : System.Text.Json.Nodes.JsonNode) : VisitGym =
|
||||||
let Status = node.["status"].AsValue().GetValue<string>()
|
let Status = node.["status"].AsValue().GetValue<string> ()
|
||||||
let Name = node.["name"].AsValue().GetValue<string>()
|
let Name = node.["name"].AsValue().GetValue<string> ()
|
||||||
let Id = node.["id"].AsValue().GetValue<int>()
|
let Id = node.["id"].AsValue().GetValue<int> ()
|
||||||
|
|
||||||
{ Id = Id
|
{
|
||||||
|
Id = Id
|
||||||
Name = Name
|
Name = Name
|
||||||
Status = Status }
|
Status = Status
|
||||||
|
}
|
||||||
namespace PureGym
|
namespace PureGym
|
||||||
|
|
||||||
/// Module containing JSON parsing methods for the Visit type
|
/// Module containing JSON parsing methods for the Visit type
|
||||||
@@ -279,19 +299,21 @@ namespace PureGym
|
|||||||
[<CompilationRepresentation(CompilationRepresentationFlags.ModuleSuffix)>]
|
[<CompilationRepresentation(CompilationRepresentationFlags.ModuleSuffix)>]
|
||||||
module Visit =
|
module Visit =
|
||||||
/// Parse from a JSON node.
|
/// Parse from a JSON node.
|
||||||
let jsonParse (node: System.Text.Json.Nodes.JsonNode) : Visit =
|
let jsonParse (node : System.Text.Json.Nodes.JsonNode) : Visit =
|
||||||
let Gym = VisitGym.jsonParse node.["gym"]
|
let Gym = VisitGym.jsonParse node.["gym"]
|
||||||
let Duration = node.["duration"].AsValue().GetValue<int>()
|
let Duration = node.["duration"].AsValue().GetValue<int> ()
|
||||||
|
|
||||||
let StartTime =
|
let StartTime =
|
||||||
node.["startTime"].AsValue().GetValue<string>() |> System.DateTime.Parse
|
node.["startTime"].AsValue().GetValue<string> () |> System.DateTime.Parse
|
||||||
|
|
||||||
let IsDurationEstimated = node.["isDurationEstimated"].AsValue().GetValue<bool>()
|
let IsDurationEstimated = node.["isDurationEstimated"].AsValue().GetValue<bool> ()
|
||||||
|
|
||||||
{ IsDurationEstimated = IsDurationEstimated
|
{
|
||||||
|
IsDurationEstimated = IsDurationEstimated
|
||||||
StartTime = StartTime
|
StartTime = StartTime
|
||||||
Duration = Duration
|
Duration = Duration
|
||||||
Gym = Gym }
|
Gym = Gym
|
||||||
|
}
|
||||||
namespace PureGym
|
namespace PureGym
|
||||||
|
|
||||||
/// Module containing JSON parsing methods for the SessionsSummary type
|
/// Module containing JSON parsing methods for the SessionsSummary type
|
||||||
@@ -299,10 +321,14 @@ namespace PureGym
|
|||||||
[<CompilationRepresentation(CompilationRepresentationFlags.ModuleSuffix)>]
|
[<CompilationRepresentation(CompilationRepresentationFlags.ModuleSuffix)>]
|
||||||
module SessionsSummary =
|
module SessionsSummary =
|
||||||
/// Parse from a JSON node.
|
/// Parse from a JSON node.
|
||||||
let jsonParse (node: System.Text.Json.Nodes.JsonNode) : SessionsSummary =
|
let jsonParse (node : System.Text.Json.Nodes.JsonNode) : SessionsSummary =
|
||||||
let ThisWeek = SessionsAggregate.jsonParse node.["thisWeek"]
|
let ThisWeek = SessionsAggregate.jsonParse node.["thisWeek"]
|
||||||
let Total = SessionsAggregate.jsonParse node.["total"]
|
let Total = SessionsAggregate.jsonParse node.["total"]
|
||||||
{ Total = Total; ThisWeek = ThisWeek }
|
|
||||||
|
{
|
||||||
|
Total = Total
|
||||||
|
ThisWeek = ThisWeek
|
||||||
|
}
|
||||||
namespace PureGym
|
namespace PureGym
|
||||||
|
|
||||||
/// Module containing JSON parsing methods for the Sessions type
|
/// Module containing JSON parsing methods for the Sessions type
|
||||||
@@ -310,12 +336,15 @@ namespace PureGym
|
|||||||
[<CompilationRepresentation(CompilationRepresentationFlags.ModuleSuffix)>]
|
[<CompilationRepresentation(CompilationRepresentationFlags.ModuleSuffix)>]
|
||||||
module Sessions =
|
module Sessions =
|
||||||
/// Parse from a JSON node.
|
/// Parse from a JSON node.
|
||||||
let jsonParse (node: System.Text.Json.Nodes.JsonNode) : Sessions =
|
let jsonParse (node : System.Text.Json.Nodes.JsonNode) : Sessions =
|
||||||
let Visits =
|
let Visits =
|
||||||
node.["visits"].AsArray()
|
node.["visits"].AsArray ()
|
||||||
|> Seq.map (fun elt -> Visit.jsonParse elt)
|
|> Seq.map (fun elt -> Visit.jsonParse elt)
|
||||||
|> List.ofSeq
|
|> List.ofSeq
|
||||||
|
|
||||||
let Summary = SessionsSummary.jsonParse node.["summary"]
|
let Summary = SessionsSummary.jsonParse node.["summary"]
|
||||||
{ Summary = Summary; Visits = Visits }
|
|
||||||
|
|
||||||
|
{
|
||||||
|
Summary = Summary
|
||||||
|
Visits = Visits
|
||||||
|
}
|
||||||
|
@@ -3,6 +3,10 @@
|
|||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TargetFramework>net6.0</TargetFramework>
|
<TargetFramework>net6.0</TargetFramework>
|
||||||
<GenerateDocumentationFile>true</GenerateDocumentationFile>
|
<GenerateDocumentationFile>true</GenerateDocumentationFile>
|
||||||
|
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
|
||||||
|
<WarnOn>FS3559</WarnOn>
|
||||||
|
|
||||||
|
<WoofWareMyriadPluginVersion>1.0.4</WoofWareMyriadPluginVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
@@ -17,8 +21,9 @@
|
|||||||
<EmbeddedResource Include="SurfaceBaseline.txt" />
|
<EmbeddedResource Include="SurfaceBaseline.txt" />
|
||||||
<EmbeddedResource Include="version.json" />
|
<EmbeddedResource Include="version.json" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<MyriadSdkGenerator Include="/Users/patrick/Documents/GitHub/MyriadPlugin/MyriadPlugin/bin/Debug/net6.0/MyriadPlugin.dll" />
|
<MyriadSdkGenerator Include="$(NuGetPackageRoot)/woofware.myriad.plugins/$(WoofWareMyriadPluginVersion)/lib/net6.0/WoofWare.Myriad.Plugins.dll" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
@@ -28,10 +33,7 @@
|
|||||||
<PackageReference Include="Fastenshtein" Version="1.0.0.8" />
|
<PackageReference Include="Fastenshtein" Version="1.0.0.8" />
|
||||||
<PackageReference Include="Myriad.Core" Version="0.8.3" />
|
<PackageReference Include="Myriad.Core" Version="0.8.3" />
|
||||||
<PackageReference Include="Myriad.Sdk" Version="0.8.3" />
|
<PackageReference Include="Myriad.Sdk" Version="0.8.3" />
|
||||||
</ItemGroup>
|
<PackageReference Include="WoofWare.Myriad.Plugins" Version="$(WoofWareMyriadPluginVersion)" />
|
||||||
|
|
||||||
<ItemGroup>
|
|
||||||
<ProjectReference Include="..\..\MyriadPlugin\MyriadPlugin\MyriadPlugin.fsproj" />
|
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
</Project>
|
</Project>
|
||||||
|
@@ -17,8 +17,8 @@
|
|||||||
projectFile = "./PureGym.App/PureGym.App.fsproj";
|
projectFile = "./PureGym.App/PureGym.App.fsproj";
|
||||||
testProjectFile = "./PureGym.Test/PureGym.Test.fsproj";
|
testProjectFile = "./PureGym.Test/PureGym.Test.fsproj";
|
||||||
pname = "puregym";
|
pname = "puregym";
|
||||||
dotnet-sdk = pkgs.dotnet-sdk_7;
|
dotnet-sdk = pkgs.dotnet-sdk_8;
|
||||||
dotnet-runtime = pkgs.dotnetCorePackages.runtime_7_0;
|
dotnet-runtime = pkgs.dotnetCorePackages.runtime_8_0;
|
||||||
version = "0.1";
|
version = "0.1";
|
||||||
dotnetTool = toolName: toolVersion: sha256:
|
dotnetTool = toolName: toolVersion: sha256:
|
||||||
pkgs.stdenvNoCC.mkDerivation rec {
|
pkgs.stdenvNoCC.mkDerivation rec {
|
||||||
@@ -81,7 +81,7 @@
|
|||||||
};
|
};
|
||||||
devShells.default = pkgs.mkShell {
|
devShells.default = pkgs.mkShell {
|
||||||
buildInputs =
|
buildInputs =
|
||||||
[pkgs.alejandra pkgs.dotnet-sdk_7 pkgs.python3 pkgs.nodePackages.markdown-link-check]
|
[pkgs.alejandra pkgs.dotnet-sdk_8 pkgs.python3 pkgs.nodePackages.markdown-link-check]
|
||||||
++ (
|
++ (
|
||||||
if pkgs.stdenv.isDarwin
|
if pkgs.stdenv.isDarwin
|
||||||
then [pkgs.darwin.apple_sdk.frameworks.CoreServices]
|
then [pkgs.darwin.apple_sdk.frameworks.CoreServices]
|
||||||
|
180
nix/deps.nix
180
nix/deps.nix
@@ -1,21 +1,6 @@
|
|||||||
# This file was automatically generated by passthru.fetch-deps.
|
# This file was automatically generated by passthru.fetch-deps.
|
||||||
# Please don't edit it manually, your changes might get overwritten!
|
# Please don't edit it manually, your changes might get overwritten!
|
||||||
{fetchNuGet}: [
|
{fetchNuGet}: [
|
||||||
(fetchNuGet {
|
|
||||||
pname = "Fastenshtein";
|
|
||||||
version = "1.0.0.8";
|
|
||||||
sha256 = "1rvw27rz7qb2n68i0jvvcr224fcpy5yzzxaj1bp89jw41cpdabp2";
|
|
||||||
})
|
|
||||||
(fetchNuGet {
|
|
||||||
pname = "Argu";
|
|
||||||
version = "6.1.1";
|
|
||||||
sha256 = "1v996g0760qhiys2ahdpnvkldaxr2jn5f1falf789glnk4a6f3xl";
|
|
||||||
})
|
|
||||||
(fetchNuGet {
|
|
||||||
pname = "System.Configuration.ConfigurationManager";
|
|
||||||
version = "4.4.0";
|
|
||||||
sha256 = "1hjgmz47v5229cbzd2pwz2h0dkq78lb2wp9grx8qr72pb5i0dk7v";
|
|
||||||
})
|
|
||||||
(fetchNuGet {
|
(fetchNuGet {
|
||||||
pname = "fantomas";
|
pname = "fantomas";
|
||||||
version = "6.2.0";
|
version = "6.2.0";
|
||||||
@@ -26,20 +11,50 @@
|
|||||||
version = "4.0.12";
|
version = "4.0.12";
|
||||||
sha256 = "0v56sv4cz8bgrfqjjg0q96619qs9dvvi0a6lp7hzz2mi82i1inmq";
|
sha256 = "0v56sv4cz8bgrfqjjg0q96619qs9dvvi0a6lp7hzz2mi82i1inmq";
|
||||||
})
|
})
|
||||||
|
(fetchNuGet {
|
||||||
|
pname = "Argu";
|
||||||
|
version = "6.1.1";
|
||||||
|
sha256 = "1v996g0760qhiys2ahdpnvkldaxr2jn5f1falf789glnk4a6f3xl";
|
||||||
|
})
|
||||||
(fetchNuGet {
|
(fetchNuGet {
|
||||||
pname = "coverlet.collector";
|
pname = "coverlet.collector";
|
||||||
version = "3.2.0";
|
version = "3.2.0";
|
||||||
sha256 = "1qxpv8v10p5wn162lzdm193gdl6c5f81zadj8h889dprlnj3g8yr";
|
sha256 = "1qxpv8v10p5wn162lzdm193gdl6c5f81zadj8h889dprlnj3g8yr";
|
||||||
})
|
})
|
||||||
(fetchNuGet {
|
(fetchNuGet {
|
||||||
pname = "FSharp.Core";
|
pname = "Fantomas.Core";
|
||||||
version = "6.0.0";
|
version = "6.1.1";
|
||||||
sha256 = "1hjhvr39c1vpgrdmf8xln5q86424fqkvy9nirkr29vl2461d2039";
|
sha256 = "1h2wsiy4fzwsg9vrlpk6w7zsvx6bc4wg4x25zqc48akg04fwpi0m";
|
||||||
|
})
|
||||||
|
(fetchNuGet {
|
||||||
|
pname = "Fantomas.FCS";
|
||||||
|
version = "6.1.1";
|
||||||
|
sha256 = "0733dm5zjdp8w5wwalqlv1q52pghfr04863i9wy807f4qfd7rrin";
|
||||||
|
})
|
||||||
|
(fetchNuGet {
|
||||||
|
pname = "Fastenshtein";
|
||||||
|
version = "1.0.0.8";
|
||||||
|
sha256 = "1rvw27rz7qb2n68i0jvvcr224fcpy5yzzxaj1bp89jw41cpdabp2";
|
||||||
|
})
|
||||||
|
(fetchNuGet {
|
||||||
|
pname = "FsCheck";
|
||||||
|
version = "2.16.6";
|
||||||
|
sha256 = "176rwky6b5rk8dzldiz4068p7m9c5y9ygzbhadrs14jkl94pc56n";
|
||||||
})
|
})
|
||||||
(fetchNuGet {
|
(fetchNuGet {
|
||||||
pname = "FSharp.Core";
|
pname = "FSharp.Core";
|
||||||
version = "7.0.400";
|
version = "6.0.1";
|
||||||
sha256 = "1pl6iqqcpm9djfn7f6ms5j1xbcyz00nb808qd6pmsjrnylflalgp";
|
sha256 = "0qks2aadkhsffg9a6xq954ll9xacnph852avd7ljh9n2g6vj06qj";
|
||||||
|
})
|
||||||
|
(fetchNuGet {
|
||||||
|
pname = "FSharp.Core";
|
||||||
|
version = "8.0.100-beta.23418.2";
|
||||||
|
sha256 = "05wfbfqphk27qp1v8pmssl3fhs4yggyrmzvxwcx6m3xryix7bjkk";
|
||||||
|
})
|
||||||
|
(fetchNuGet {
|
||||||
|
pname = "FsUnit";
|
||||||
|
version = "5.6.1";
|
||||||
|
sha256 = "1zffn9dm2c44v8qjzwfg6y3psydiv2bn3n305rf7mc57cmm4ygv3";
|
||||||
})
|
})
|
||||||
(fetchNuGet {
|
(fetchNuGet {
|
||||||
pname = "Microsoft.AspNetCore.App.Ref";
|
pname = "Microsoft.AspNetCore.App.Ref";
|
||||||
@@ -53,8 +68,8 @@
|
|||||||
})
|
})
|
||||||
(fetchNuGet {
|
(fetchNuGet {
|
||||||
pname = "Microsoft.AspNetCore.App.Runtime.linux-arm64";
|
pname = "Microsoft.AspNetCore.App.Runtime.linux-arm64";
|
||||||
version = "7.0.11";
|
version = "8.0.0-rc.1.23421.29";
|
||||||
sha256 = "0hmsqy4yc3023mcp5rg0h59yv3f8cnjhxw1g4i8md67vm5y04lfv";
|
sha256 = "1sz6skh1ddvdcib8ydi6km593ah3cchgz2fs61kj03z6jg2vz9la";
|
||||||
})
|
})
|
||||||
(fetchNuGet {
|
(fetchNuGet {
|
||||||
pname = "Microsoft.AspNetCore.App.Runtime.linux-x64";
|
pname = "Microsoft.AspNetCore.App.Runtime.linux-x64";
|
||||||
@@ -63,8 +78,8 @@
|
|||||||
})
|
})
|
||||||
(fetchNuGet {
|
(fetchNuGet {
|
||||||
pname = "Microsoft.AspNetCore.App.Runtime.linux-x64";
|
pname = "Microsoft.AspNetCore.App.Runtime.linux-x64";
|
||||||
version = "7.0.11";
|
version = "8.0.0-rc.1.23421.29";
|
||||||
sha256 = "18sk9wka8z5354ca77q43hi0615yjssdjbyi0hqq92w6zmg43vgc";
|
sha256 = "1m6a47bnrl8n9ahnh01mg2fkc20lmfjjg3f7xzbdngnikm6vzcxv";
|
||||||
})
|
})
|
||||||
(fetchNuGet {
|
(fetchNuGet {
|
||||||
pname = "Microsoft.AspNetCore.App.Runtime.osx-arm64";
|
pname = "Microsoft.AspNetCore.App.Runtime.osx-arm64";
|
||||||
@@ -73,8 +88,8 @@
|
|||||||
})
|
})
|
||||||
(fetchNuGet {
|
(fetchNuGet {
|
||||||
pname = "Microsoft.AspNetCore.App.Runtime.osx-arm64";
|
pname = "Microsoft.AspNetCore.App.Runtime.osx-arm64";
|
||||||
version = "7.0.11";
|
version = "8.0.0-rc.1.23421.29";
|
||||||
sha256 = "1j0zbd4rmmd3ylgixsvyj145g2r6px6b9d9k4yxxg6d61x90c165";
|
sha256 = "16vy79c7byrqwd9f7vm0xbah3k4y6yis0flm9jkfk0hp4bb0y0js";
|
||||||
})
|
})
|
||||||
(fetchNuGet {
|
(fetchNuGet {
|
||||||
pname = "Microsoft.AspNetCore.App.Runtime.osx-x64";
|
pname = "Microsoft.AspNetCore.App.Runtime.osx-x64";
|
||||||
@@ -83,8 +98,8 @@
|
|||||||
})
|
})
|
||||||
(fetchNuGet {
|
(fetchNuGet {
|
||||||
pname = "Microsoft.AspNetCore.App.Runtime.osx-x64";
|
pname = "Microsoft.AspNetCore.App.Runtime.osx-x64";
|
||||||
version = "7.0.11";
|
version = "8.0.0-rc.1.23421.29";
|
||||||
sha256 = "0wxw7vgygg6hqzq479n0pfjizr69wq7ja03a0qh8bma8b9q2mn6f";
|
sha256 = "0ygb60mpk1rkz67v1d9vf3f7zfvdzg5a4ckc1yqcfb2n4a64rdbv";
|
||||||
})
|
})
|
||||||
(fetchNuGet {
|
(fetchNuGet {
|
||||||
pname = "Microsoft.AspNetCore.App.Runtime.win-x64";
|
pname = "Microsoft.AspNetCore.App.Runtime.win-x64";
|
||||||
@@ -93,8 +108,8 @@
|
|||||||
})
|
})
|
||||||
(fetchNuGet {
|
(fetchNuGet {
|
||||||
pname = "Microsoft.AspNetCore.App.Runtime.win-x64";
|
pname = "Microsoft.AspNetCore.App.Runtime.win-x64";
|
||||||
version = "7.0.11";
|
version = "8.0.0-rc.1.23421.29";
|
||||||
sha256 = "05ywwfn5lzx6y999f7gwmablkxi2zvska4sg20ihmjzp3xakcmk0";
|
sha256 = "0cir3vy94ki9v0zzkm49f33mxmp25i2v0c3gp4fhmnhpsfn0x7rb";
|
||||||
})
|
})
|
||||||
(fetchNuGet {
|
(fetchNuGet {
|
||||||
pname = "Microsoft.CodeCoverage";
|
pname = "Microsoft.CodeCoverage";
|
||||||
@@ -113,8 +128,8 @@
|
|||||||
})
|
})
|
||||||
(fetchNuGet {
|
(fetchNuGet {
|
||||||
pname = "Microsoft.NETCore.App.Host.linux-arm64";
|
pname = "Microsoft.NETCore.App.Host.linux-arm64";
|
||||||
version = "7.0.11";
|
version = "8.0.0-rc.1.23419.4";
|
||||||
sha256 = "03nkxjn4wq30rw0163rqi8sngfxmcvwgm0wg7sgyb1cdh0q1ai68";
|
sha256 = "1254rvx06wjblf0y2msh1zdg0fky861l8x5f5w7hm5l14ys1firb";
|
||||||
})
|
})
|
||||||
(fetchNuGet {
|
(fetchNuGet {
|
||||||
pname = "Microsoft.NETCore.App.Host.linux-x64";
|
pname = "Microsoft.NETCore.App.Host.linux-x64";
|
||||||
@@ -123,8 +138,8 @@
|
|||||||
})
|
})
|
||||||
(fetchNuGet {
|
(fetchNuGet {
|
||||||
pname = "Microsoft.NETCore.App.Host.linux-x64";
|
pname = "Microsoft.NETCore.App.Host.linux-x64";
|
||||||
version = "7.0.11";
|
version = "8.0.0-rc.1.23419.4";
|
||||||
sha256 = "12hh69sr4wf8sjcw3q71vky51sn854ffahbq6rgz3njzvbvc0dbj";
|
sha256 = "10kjms0wx5iialcvd0fp64vriv4cyk7k22wqh3km9mh43i620px7";
|
||||||
})
|
})
|
||||||
(fetchNuGet {
|
(fetchNuGet {
|
||||||
pname = "Microsoft.NETCore.App.Host.osx-arm64";
|
pname = "Microsoft.NETCore.App.Host.osx-arm64";
|
||||||
@@ -138,8 +153,8 @@
|
|||||||
})
|
})
|
||||||
(fetchNuGet {
|
(fetchNuGet {
|
||||||
pname = "Microsoft.NETCore.App.Host.osx-x64";
|
pname = "Microsoft.NETCore.App.Host.osx-x64";
|
||||||
version = "7.0.11";
|
version = "8.0.0-rc.1.23419.4";
|
||||||
sha256 = "1j1k735gkwba93n5yck87wppfpsbny979hppcygwrk81myf3fv03";
|
sha256 = "03sgkb2ar63wllisx8rmpc3yrngl61yhlmqinwbc5bhyaxpmqnk5";
|
||||||
})
|
})
|
||||||
(fetchNuGet {
|
(fetchNuGet {
|
||||||
pname = "Microsoft.NETCore.App.Host.win-x64";
|
pname = "Microsoft.NETCore.App.Host.win-x64";
|
||||||
@@ -148,8 +163,8 @@
|
|||||||
})
|
})
|
||||||
(fetchNuGet {
|
(fetchNuGet {
|
||||||
pname = "Microsoft.NETCore.App.Host.win-x64";
|
pname = "Microsoft.NETCore.App.Host.win-x64";
|
||||||
version = "7.0.11";
|
version = "8.0.0-rc.1.23419.4";
|
||||||
sha256 = "0ifshdx19bgnbgynbk6iy6gybnxmp63nylrn7068x66hvcavh7kh";
|
sha256 = "0lnxq6risl59ig9svhra6papn0i9rs2pr4zgnysnbfg7gvd3fiwh";
|
||||||
})
|
})
|
||||||
(fetchNuGet {
|
(fetchNuGet {
|
||||||
pname = "Microsoft.NETCore.App.Ref";
|
pname = "Microsoft.NETCore.App.Ref";
|
||||||
@@ -163,8 +178,8 @@
|
|||||||
})
|
})
|
||||||
(fetchNuGet {
|
(fetchNuGet {
|
||||||
pname = "Microsoft.NETCore.App.Runtime.linux-arm64";
|
pname = "Microsoft.NETCore.App.Runtime.linux-arm64";
|
||||||
version = "7.0.11";
|
version = "8.0.0-rc.1.23419.4";
|
||||||
sha256 = "1gzwc96fs222ddia0k1924cn7gxm2a4anqgcxhmavx56x76wsy6f";
|
sha256 = "1x5pq1y4gn1gwnqmq9mj02wki5yncidlnmaf2przz8yingfw0hq6";
|
||||||
})
|
})
|
||||||
(fetchNuGet {
|
(fetchNuGet {
|
||||||
pname = "Microsoft.NETCore.App.Runtime.linux-x64";
|
pname = "Microsoft.NETCore.App.Runtime.linux-x64";
|
||||||
@@ -173,8 +188,8 @@
|
|||||||
})
|
})
|
||||||
(fetchNuGet {
|
(fetchNuGet {
|
||||||
pname = "Microsoft.NETCore.App.Runtime.linux-x64";
|
pname = "Microsoft.NETCore.App.Runtime.linux-x64";
|
||||||
version = "7.0.11";
|
version = "8.0.0-rc.1.23419.4";
|
||||||
sha256 = "0vxza49wwiia0d3m887yiaprp3xnax2bgzhj5bf080b4ayapzkf9";
|
sha256 = "1arzm0mqdj0hnlsfcki8z3zbbp5mpv73133wc8yxpymh6f000bv2";
|
||||||
})
|
})
|
||||||
(fetchNuGet {
|
(fetchNuGet {
|
||||||
pname = "Microsoft.NETCore.App.Runtime.osx-arm64";
|
pname = "Microsoft.NETCore.App.Runtime.osx-arm64";
|
||||||
@@ -183,8 +198,8 @@
|
|||||||
})
|
})
|
||||||
(fetchNuGet {
|
(fetchNuGet {
|
||||||
pname = "Microsoft.NETCore.App.Runtime.osx-arm64";
|
pname = "Microsoft.NETCore.App.Runtime.osx-arm64";
|
||||||
version = "7.0.11";
|
version = "8.0.0-rc.1.23419.4";
|
||||||
sha256 = "15b62hxrpfy19xvyxlyligixxpa9sysfgi47xi4imx5055fhwphh";
|
sha256 = "04k93say7b842bvh2x853skj5ymxsq3b11vf6rkfcqz6b7hvn7pj";
|
||||||
})
|
})
|
||||||
(fetchNuGet {
|
(fetchNuGet {
|
||||||
pname = "Microsoft.NETCore.App.Runtime.osx-x64";
|
pname = "Microsoft.NETCore.App.Runtime.osx-x64";
|
||||||
@@ -193,8 +208,8 @@
|
|||||||
})
|
})
|
||||||
(fetchNuGet {
|
(fetchNuGet {
|
||||||
pname = "Microsoft.NETCore.App.Runtime.osx-x64";
|
pname = "Microsoft.NETCore.App.Runtime.osx-x64";
|
||||||
version = "7.0.11";
|
version = "8.0.0-rc.1.23419.4";
|
||||||
sha256 = "018qf23b0jixfh3fm74zqaakk01qx6yq21gk2mdn68b0xhnvlzma";
|
sha256 = "0f403j2sis8p7y1w2nkbp03xq8qq06f7q94d8clm9c98vppw75sj";
|
||||||
})
|
})
|
||||||
(fetchNuGet {
|
(fetchNuGet {
|
||||||
pname = "Microsoft.NETCore.App.Runtime.win-x64";
|
pname = "Microsoft.NETCore.App.Runtime.win-x64";
|
||||||
@@ -203,19 +218,29 @@
|
|||||||
})
|
})
|
||||||
(fetchNuGet {
|
(fetchNuGet {
|
||||||
pname = "Microsoft.NETCore.App.Runtime.win-x64";
|
pname = "Microsoft.NETCore.App.Runtime.win-x64";
|
||||||
version = "7.0.11";
|
version = "8.0.0-rc.1.23419.4";
|
||||||
sha256 = "12xmw2kcpf5rh8sv4y0mqzp917f7q8g4mfh5navqw4jmnxyb26qq";
|
sha256 = "00whfl9s9qd43jv68rff5g6da0k6y11yc2pg6v681967fnq31jqp";
|
||||||
})
|
})
|
||||||
(fetchNuGet {
|
(fetchNuGet {
|
||||||
pname = "Microsoft.NETCore.Platforms";
|
pname = "Microsoft.NETCore.Platforms";
|
||||||
version = "1.1.0";
|
version = "1.1.0";
|
||||||
sha256 = "08vh1r12g6ykjygq5d3vq09zylgb84l63k49jc4v8faw9g93iqqm";
|
sha256 = "08vh1r12g6ykjygq5d3vq09zylgb84l63k49jc4v8faw9g93iqqm";
|
||||||
})
|
})
|
||||||
|
(fetchNuGet {
|
||||||
|
pname = "Microsoft.NETCore.Platforms";
|
||||||
|
version = "1.1.1";
|
||||||
|
sha256 = "164wycgng4mi9zqi2pnsf1pq6gccbqvw6ib916mqizgjmd8f44pj";
|
||||||
|
})
|
||||||
(fetchNuGet {
|
(fetchNuGet {
|
||||||
pname = "Microsoft.NETCore.Platforms";
|
pname = "Microsoft.NETCore.Platforms";
|
||||||
version = "2.0.0";
|
version = "2.0.0";
|
||||||
sha256 = "1fk2fk2639i7nzy58m9dvpdnzql4vb8yl8vr19r2fp8lmj9w2jr0";
|
sha256 = "1fk2fk2639i7nzy58m9dvpdnzql4vb8yl8vr19r2fp8lmj9w2jr0";
|
||||||
})
|
})
|
||||||
|
(fetchNuGet {
|
||||||
|
pname = "Microsoft.NETCore.Targets";
|
||||||
|
version = "1.1.3";
|
||||||
|
sha256 = "05smkcyxir59rgrmp7d6327vvrlacdgldfxhmyr1azclvga1zfsq";
|
||||||
|
})
|
||||||
(fetchNuGet {
|
(fetchNuGet {
|
||||||
pname = "Microsoft.TestPlatform.ObjectModel";
|
pname = "Microsoft.TestPlatform.ObjectModel";
|
||||||
version = "17.6.0";
|
version = "17.6.0";
|
||||||
@@ -226,6 +251,16 @@
|
|||||||
version = "17.6.0";
|
version = "17.6.0";
|
||||||
sha256 = "16vpicp4q2kbpgr3qwpsxg7srabxqszx23x6smjvvrvz7qmr5v8i";
|
sha256 = "16vpicp4q2kbpgr3qwpsxg7srabxqszx23x6smjvvrvz7qmr5v8i";
|
||||||
})
|
})
|
||||||
|
(fetchNuGet {
|
||||||
|
pname = "Myriad.Core";
|
||||||
|
version = "0.8.3";
|
||||||
|
sha256 = "0s5pdckjw4x0qrbd4i3cz9iili5cppg5qnjbr7zjbbhhmxzb24xw";
|
||||||
|
})
|
||||||
|
(fetchNuGet {
|
||||||
|
pname = "Myriad.Sdk";
|
||||||
|
version = "0.8.3";
|
||||||
|
sha256 = "0qv78c5s5m04xb8h17nnn2ig26zcyya91k2dpj745cm1cbnzvvgc";
|
||||||
|
})
|
||||||
(fetchNuGet {
|
(fetchNuGet {
|
||||||
pname = "NETStandard.Library";
|
pname = "NETStandard.Library";
|
||||||
version = "2.0.0";
|
version = "2.0.0";
|
||||||
@@ -273,8 +308,8 @@
|
|||||||
})
|
})
|
||||||
(fetchNuGet {
|
(fetchNuGet {
|
||||||
pname = "NUnit";
|
pname = "NUnit";
|
||||||
version = "3.13.3";
|
version = "3.14.0";
|
||||||
sha256 = "0wdzfkygqnr73s6lpxg5b1pwaqz9f414fxpvpdmf72bvh4jaqzv6";
|
sha256 = "19p8911lrfds1k9rv47jk1bbn665s0pvghkd06gzbg78j6mzzqqa";
|
||||||
})
|
})
|
||||||
(fetchNuGet {
|
(fetchNuGet {
|
||||||
pname = "NUnit.Analyzers";
|
pname = "NUnit.Analyzers";
|
||||||
@@ -291,6 +326,31 @@
|
|||||||
version = "1.6.4";
|
version = "1.6.4";
|
||||||
sha256 = "1mvi3nbrr450g3fgd1y4wg3bwl9k1agyjfd9wdkqk12714bsln8l";
|
sha256 = "1mvi3nbrr450g3fgd1y4wg3bwl9k1agyjfd9wdkqk12714bsln8l";
|
||||||
})
|
})
|
||||||
|
(fetchNuGet {
|
||||||
|
pname = "runtime.any.System.Runtime";
|
||||||
|
version = "4.3.0";
|
||||||
|
sha256 = "1cqh1sv3h5j7ixyb7axxbdkqx6cxy00p4np4j91kpm492rf4s25b";
|
||||||
|
})
|
||||||
|
(fetchNuGet {
|
||||||
|
pname = "runtime.native.System";
|
||||||
|
version = "4.3.0";
|
||||||
|
sha256 = "15hgf6zaq9b8br2wi1i3x0zvmk410nlmsmva9p0bbg73v6hml5k4";
|
||||||
|
})
|
||||||
|
(fetchNuGet {
|
||||||
|
pname = "runtime.unix.System.Private.Uri";
|
||||||
|
version = "4.3.0";
|
||||||
|
sha256 = "1jx02q6kiwlvfksq1q9qr17fj78y5v6mwsszav4qcz9z25d5g6vk";
|
||||||
|
})
|
||||||
|
(fetchNuGet {
|
||||||
|
pname = "System.Configuration.ConfigurationManager";
|
||||||
|
version = "4.4.0";
|
||||||
|
sha256 = "1hjgmz47v5229cbzd2pwz2h0dkq78lb2wp9grx8qr72pb5i0dk7v";
|
||||||
|
})
|
||||||
|
(fetchNuGet {
|
||||||
|
pname = "System.Diagnostics.DiagnosticSource";
|
||||||
|
version = "7.0.0";
|
||||||
|
sha256 = "1jxhvsh5mzdf0sgb4dfmbys1b12ylyr5pcfyj1map354fiq3qsgm";
|
||||||
|
})
|
||||||
(fetchNuGet {
|
(fetchNuGet {
|
||||||
pname = "System.Formats.Asn1";
|
pname = "System.Formats.Asn1";
|
||||||
version = "5.0.0";
|
version = "5.0.0";
|
||||||
@@ -306,11 +366,26 @@
|
|||||||
version = "4.5.0";
|
version = "4.5.0";
|
||||||
sha256 = "1gq4s8w7ds1sp8f9wqzf8nrzal40q5cd2w4pkf4fscrl2ih3hkkj";
|
sha256 = "1gq4s8w7ds1sp8f9wqzf8nrzal40q5cd2w4pkf4fscrl2ih3hkkj";
|
||||||
})
|
})
|
||||||
|
(fetchNuGet {
|
||||||
|
pname = "System.Memory";
|
||||||
|
version = "4.5.5";
|
||||||
|
sha256 = "08jsfwimcarfzrhlyvjjid61j02irx6xsklf32rv57x2aaikvx0h";
|
||||||
|
})
|
||||||
|
(fetchNuGet {
|
||||||
|
pname = "System.Private.Uri";
|
||||||
|
version = "4.3.0";
|
||||||
|
sha256 = "04r1lkdnsznin0fj4ya1zikxiqr0h6r6a1ww2dsm60gqhdrf0mvx";
|
||||||
|
})
|
||||||
(fetchNuGet {
|
(fetchNuGet {
|
||||||
pname = "System.Reflection.Metadata";
|
pname = "System.Reflection.Metadata";
|
||||||
version = "1.6.0";
|
version = "1.6.0";
|
||||||
sha256 = "1wdbavrrkajy7qbdblpbpbalbdl48q3h34cchz24gvdgyrlf15r4";
|
sha256 = "1wdbavrrkajy7qbdblpbpbalbdl48q3h34cchz24gvdgyrlf15r4";
|
||||||
})
|
})
|
||||||
|
(fetchNuGet {
|
||||||
|
pname = "System.Runtime";
|
||||||
|
version = "4.3.1";
|
||||||
|
sha256 = "03ch4d2acf6q037a4njxpll2kkx3dwzlg07yxr4z5m6j1kqgmm27";
|
||||||
|
})
|
||||||
(fetchNuGet {
|
(fetchNuGet {
|
||||||
pname = "System.Runtime.CompilerServices.Unsafe";
|
pname = "System.Runtime.CompilerServices.Unsafe";
|
||||||
version = "6.0.0";
|
version = "6.0.0";
|
||||||
@@ -361,4 +436,9 @@
|
|||||||
version = "7.0.3";
|
version = "7.0.3";
|
||||||
sha256 = "0zjrnc9lshagm6kdb9bdh45dmlnkpwcpyssa896sda93ngbmj8k9";
|
sha256 = "0zjrnc9lshagm6kdb9bdh45dmlnkpwcpyssa896sda93ngbmj8k9";
|
||||||
})
|
})
|
||||||
|
(fetchNuGet {
|
||||||
|
pname = "WoofWare.Myriad.Plugins";
|
||||||
|
version = "1.0.4";
|
||||||
|
sha256 = "077aldkb3va1azdm5g9sms074flkjwwbml6la0alk2cazw6xqj77";
|
||||||
|
})
|
||||||
]
|
]
|
||||||
|
Reference in New Issue
Block a user