public static async Task Main() { // download boundaries and runnables. var config = SettingsManager.GetCredentials(); var cosmosWriter = new UploadHandler(config.EndPoint, config.AuthKey, config.CosmosDatabase, config.CosmosContainer, config.StaticDataCosmosContainer); var tripProc = new TripProcessorHandler(cosmosWriter); var tommy = Guid.Parse("08f9752f-982d-445b-b75e-63e24f2c325c"); await tripProc.Process("C:/users/riguy/Downloads/activity_7747876727.gpx", tommy); }
public static async Task <Guid> RunOrchestrator( [OrchestrationTrigger] IDurableOrchestrationContext context) { (var userId, var rawGpxData) = context.GetInput <(Guid, string)>(); var parsedGpx = GpxParser.Parse(new StringReader(rawGpxData)); // todo - also upload the file to raw storage! // todo - and record the raw file location in the uploaded cache function below. var config = SettingsManager.GetCredentials(); // todo this doesn't work. probably just move these configs for Azure Fxn var cosmosWriter = new UploadHandler(config.EndPoint, config.AuthKey, config.CosmosDatabase, config.CosmosContainer, config.StaticDataCosmosContainer); var tripHandler = new TripProcessorHandler(cosmosWriter); var plusCodeRanges = TripProcessorHandler.GetPlusCodeRanges(parsedGpx); tripHandler = await context.CallActivityAsync <TripProcessorHandler>("GpxFileUpload_WarmCache", (parsedGpx, tripHandler)); // parallel tracks: upload raw while also computing overlaps. var overlapComputeParams = (parsedGpx, userId, plusCodeRanges, tripHandler); var overlappingNodesTask = context.CallActivityAsync <HashSet <UserNodeCoverage> >("GpxFileUpload_OverlappingNodes", overlapComputeParams); var uploadRawTask = context.CallActivityAsync("GpxFileUpload_UploadRawRun", (parsedGpx, userId, tripHandler)); Task.WaitAll(overlappingNodesTask, uploadRawTask); var overlappingNodes = overlappingNodesTask.Result; // upload overlapping nodes var uploadCacheTask = context.CallActivityAsync("GpxFileUpload_UploadCache", (overlappingNodes, tripHandler)); var updateUserWayCoverage = context.CallActivityAsync("GpxFileUpload_UpdateUserWayCoverage", (overlappingNodes, userId, plusCodeRanges, tripHandler)); Task.WaitAll(uploadCacheTask, updateUserWayCoverage); // upload summary await context.CallActivityAsync("GpxFileUpload_UpdateUserSummaryAsync", (userId, tripHandler)); return(userId); }