public void HandleRequest(string request)
{
List<string> requests;
var fileTask = BufferFileExists().AsTask();
fileTask.Wait();
if (fileTask.Result)
{
var bufferFileTask = GetBufferFile().AsTask();
bufferFileTask.Wait();
var bufferFile = bufferFileTask.Result;
var task = FileIO.AppendTextAsync(bufferFile, request).AsTask();
task.Wait();
var readLinesTask = FileIO.ReadLinesAsync(bufferFile).AsTask();
readLinesTask.Wait();
requests = (readLinesTask.Result).ToList();
var deleteTask = bufferFile.DeleteAsync().AsTask();
deleteTask.Wait();
}
else
{
requests = request.Split(new[] { Environment.NewLine },
StringSplitOptions.RemoveEmptyEntries).ToList();
}
for (var i = 0; i < requests.Count; i++)
{
var invoked = ServerChannelInvoker.ProcessRequest(requests[i]);
if (i != requests.Count - 1) continue;
if (invoked.Invoked) continue;
var bufferFileTask = GetBufferFile().AsTask();
bufferFileTask.Wait();
var appendTask = FileIO.AppendTextAsync(bufferFileTask.Result, requests[i]).AsTask();
appendTask.Wait();
}
}