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 ConfigurationXml CreateConfigBasedOnRequirements( ConfigRequirements configRequirements) { ConfigurationXml configurationXml = XmlConfigCreator.CreateXmlConfigBasedOnRequirements(configRequirements); return(configurationXml); }
/// <summary> /// Main method of the Console Application which using config to manipulate Shell. /// </summary> /// <param name="args">Represents the command-line arguments.</param> private static async Task MainXDocument(IReadOnlyList <string> args) { // Show the case when we have a movies to appraise. var builderDirector = ShellAsync.CreateBuilderDirector( XmlConfigCreator.CreateDefaultXmlConfigAsXDocument() ); var shell = builderDirector.MakeShell(); await Run(args, shell); }
/// <summary> /// Main method of the Console Application which using config to manipulate Shell. /// </summary> /// <param name="args">Represents the command-line arguments.</param> private static void MainXDocument(string[] args) { // Show the case when we have a movies to appraise. var builderDirector = ShellAsync.CreateBuilderDirector( XmlConfigCreator.CreateDefaultXmlConfigAsXDocument() ); var shell = builderDirector.MakeShell(); Run(args, shell); }
public async Task <IReadOnlyList <ServiceStatus> > ExecuteAsync(RequestData requestData, IInputterAsync additionalInputterAsync, IOutputterAsync additionalOutputterAsync) { ShellAsyncBuilderDirector builderDirector = ShellAsync.CreateBuilderDirector( XmlConfigCreator.TransformConfigToXDocument(requestData.ConfigurationXml) ); using ShellAsync shell = builderDirector.MakeShell(); shell.InputManagerAsync.Add(additionalInputterAsync); shell.OutputManagerAsync.Add(additionalOutputterAsync); return(await ExecuteSpecifiedNumberOfTimes(shell)); }