public async Task ProcessRequest(Stream input, Stream output) { isInitialized.CheckIfFulfills("RepositoryDispatcher", "initialized", true); await Task.Run(() => { Message message = NetworkMessanger <Message> .Recieve(input); ValidateMessage(message); Type requestedType = GetEntityType(message); List <Entity> entities = GetEntities(message.Parameter.Value, requestedType); SendEntities(entities, output); }); }
/// <summary> /// Sends declared type instance and recieves result. /// </summary> /// <param name="serverPort"></param> /// <param name="serverIP"></param> /// <returns></returns> public async Task <NetworkResults> Send(string serverPort, string serverIP) { using (StreamSocket socket = new StreamSocket()) { HostName serverHost = new HostName(serverIP); await socket.ConnectAsync(serverHost, serverPort); SendToStream(socket.OutputStream.AsStreamForWrite()); NetworkResults response = NetworkMessanger <NetworkResults> .Recieve(socket.InputStream.AsStreamForRead()); return(response); } }
/// <summary> /// Sends declared type instance and recieves another type instance declared in method. /// </summary> /// <typeparam name="RecievieType"></typeparam> /// <param name="serverPort"></param> /// <param name="serverIP"></param> /// <returns></returns> public async Task <RecievieType> SendAndRecieve <RecievieType>(string serverPort, string serverIP) { using (StreamSocket socket = new StreamSocket()) { HostName serverHost = new HostName(serverIP); await socket.ConnectAsync(serverHost, serverPort); SendToStream(socket.OutputStream.AsStreamForWrite()); RecievieType responseInstance = NetworkMessanger <RecievieType> .Recieve(socket.InputStream.AsStreamForRead()); return(responseInstance); } }
public async Task ProcessRequest(Stream input, Stream output) { isInitialized.CheckIfFulfills("CommandDispatcher", "initialized", true); Message message = NetworkMessanger <Message> .Recieve(input); switch (message.Section) { case "OutputDevice": await ManageOutputDevice(message); break; case "Video": await MenageVideo(message); break; default: throw new Exception($"Section type not supported. { Logger.GetExceptionLocalization(this) }"); } SendSuccessReponse(output); }