namespace PureGym.App open System.Threading open Argu open PureGym open System type SessionsArgsFragment = | [] From_Date of string | [] To_Date of string interface IArgParserTemplate with member s.Usage = match s with | From_Date _ -> "start of date range (inclusive) for query, which needs to parse as a DateTime" | To_Date _ -> "end of date range (inclusive) for query, which needs to parse as a DateTime" type SessionsArgs = { Creds : Auth FromDate : DateOnly ToDate : DateOnly } static member Parse (auth : Auth) (args : SessionsArgsFragment ParseResults) : Result = let fromDate = args.GetResult SessionsArgsFragment.From_Date let toDate = args.GetResult SessionsArgsFragment.To_Date { Creds = auth FromDate = DateOnly.Parse fromDate ToDate = DateOnly.Parse toDate } |> Ok [] module Sessions = let run (args : SessionsArgs) = task { let! client = Api.makeWithoutRefresh CancellationToken.None args.Creds let! activity = client.GetSessions (args.FromDate, args.ToDate) System.Console.WriteLine (string activity) return 0 }