public async Task <IActionResult> Run( [HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)] HttpRequest req, ILogger log) { log.LogInformation("C# HTTP trigger function processed a request."); string tenantUrl = req.Query["tenantUrl"]; string empID = req.Query["empID"]; string startRaw = req.Query["start"]; string endRaw = req.Query["end"]; string token = req.Query["token"]; // We still want to validate dates. DateTime.TryParse(startRaw, CultureInfo.InvariantCulture, DateTimeStyles.AssumeUniversal, out var start); DateTime.TryParse(endRaw, CultureInfo.InvariantCulture, DateTimeStyles.AssumeUniversal, out var end); var validationModel = Validate(tenantUrl, empID, start, end, token); if (!validationModel.IsValid) { return(new BadRequestObjectResult(validationModel)); } var result = await _getTimesheetsQuery.Execute(new GetTimesheets(tenantUrl, empID, startRaw, endRaw, token)); return(new JsonResult(result)); }
public async Task <CollectDataModel> Execute(CollectDataRequest request) { var data = new CollectDataModel { EmpID = request.EmpID, Date = request.Date }; var crmAppointmentsTask = _getCrmAppointmentsQuery.Execute(new GetCrmAppointments( request.TenantUrl, request.EmpID, request.Date, request.Date, request.Token)); var recentProjectsTask = _getRecentProjectsQuery.Execute(new GetRecentProjects( request.TenantUrl, request.EmpID, request.Token)); var timesheetsTask = _getTimesheetsQuery.Execute(new GetTimesheets.GetTimesheets( request.TenantUrl, request.EmpID, request.Date, request.Date, request.Token)); IEnumerable <GitCommitModel> commits = await GetCommits(request); data.Commits = commits; data.CrmAppointments = await crmAppointmentsTask; data.RecentProjects = await recentProjectsTask; data.Timesheets = await timesheetsTask; return(data); }