namespace PureGym.App 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 : DateTime ToDate : DateTime } 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 = DateTime.Parse fromDate ToDate = DateTime.Parse toDate } |> Ok [] module Sessions = let run (args : SessionsArgs) = task { let! client = Dto.make args.Creds let! activity = client.GetSessions args.FromDate args.ToDate System.Console.WriteLine (string activity) return 0 }