Ejemplo n.º 1
0
        public async Task <IEnumerable <TimesheetModel> > Handle(GetTimesheets request, CancellationToken cancellationToken)
        {
            DateTimeOffset startDate = DateTimeOffset.Parse(request.Start, CultureInfo.InvariantCulture);
            DateTimeOffset endDate   = DateTimeOffset.Parse(request.End, CultureInfo.InvariantCulture);

            if (request.Start == request.End)
            {
                endDate = endDate.AddDays(1).AddMinutes(-1);
            }

            var url = new Url(request.TenantUrl)
                      .AppendPathSegment("/Ajax/GetTimesheets")
                      .SetQueryParam("employeeID", request.EmpID)
                      .SetQueryParam("start", startDate.ToUnixTimeSeconds())
                      .SetQueryParam("end", endDate.ToUnixTimeSeconds())
                      // TimePro bug: Basic auth is not base64 decoded on the server and takes the raw token.
                      .WithHeader("Authorization", $"Basic {request.Token}");

            return(await url.GetJsonAsync <TimesheetModel[]>());
        }
Ejemplo n.º 2
0
 public Task <IEnumerable <TimesheetModel> > Execute(GetTimesheets request)
 {
     return(Handle(request, default));
 }