private DeviceDataMetadataPipelineMapPayload BuildPayload(DeviceDataPayload incomingPayload) { var patient = PatientRepository.Instance.GetPatientByDeviceId(incomingPayload.DeviceId); var map = PipelineMapRepository.Instance.GetPipelineMapByPatientId(patient.Id); var outgoingPayload = new DeviceDataMetadataPipelineMapPayload { Data = incomingPayload.Data, DataType = incomingPayload.DataType, DeviceId = incomingPayload.DeviceId, Map = map, PatientId = patient.Id, StudyId = patient.StudyId }; return(outgoingPayload); }
public IActionResult Post([FromBody] DeviceDataMetadataPipelineMapPayload payload) { var data = payload.Data; var routes = payload.Map.Routes; List <Func <object, object> > pipeline = new List <Func <object, object> >(); foreach (var route in routes) { var path = route.Path; if (_pipelineRoutes.ContainsKey(path)) { var f = _pipelineRoutes[path]; pipeline.Add(f); } else { var f = BuildRouteRequestFunction(route); pipeline.Add(f); } } foreach (Func <object, object> pipe in pipeline) { var result = pipe.Invoke(data); if (result is BadRequestObjectResult) { Console.WriteLine((result as BadRequestObjectResult).Value); continue; } data = result; } return(Ok("pipeline completed")); }