public async Task <ProcessingResponse> ProcessRequest(RequestData requestData) { var builderDirector = Shell.CreateBuilderDirector( XmlConfigCreator.TransformConfigToXDocument(requestData.ConfigurationXml) ); var shell = builderDirector.MakeShell(); var inputTransmitter = new InputTransmitter(requestData.ThingNames); shell.InputManager.Add(inputTransmitter); var outputTransmitter = new OutputTransmitter(); shell.OutputManager.Add(outputTransmitter); ServiceStatus status = await Task.Run(() => shell.Run("Processing response")); var results = outputTransmitter.GetResults(); var response = new ProcessingResponse { Metadata = new ResponseMetadata { CommonResultsNumber = results.Sum(rating => rating.Count), CommonResultCollectionsNumber = results.Count, ResultStatus = status, OptionalData = CreateOptionalData() }, RatingDataContainers = results }; return(response); }
public static void DeattachInputTransmitter(this IInputReceiver r, InputTransmitter t) { if (r.AttachedInputTransmitterList == null) { return; } r.AttachedInputTransmitterList.Remove(t); t.Dispose(); }
public static void AttachInputTransmitter(this IInputReceiver r, InputTransmitter t) { if (r.AttachedInputTransmitterList == null) { r.AttachedInputTransmitterList = new List <InputTransmitter>(); } if (r.AttachedInputTransmitterList.Contains(t)) { return; } r.AttachedInputTransmitterList.Add(t); }
void InitReceiverDict() { _receiverDict = new Dictionary <IInputReceiver, T>(); List <IInputReceiver> irList = GetComponents <IInputReceiver>().ToList(); foreach (IInputReceiver ir in irList) { T transmitter = InputTransmitter.AttachInputTransmitter <T>(ir); if (transmitter == null) { return; } transmitter.SetTransmissionEnabled(true, false); _receiverDict.Add(ir, transmitter); } }