public async Task RunAsync() { string serializedData = ""; bool responsePostSuccessful = false; try { _log.Called(); PrintHeader(); int howManyRecords = _inputService.EnterTheQty(); bool serverCreation = _serverService.CreateDatabase(); if (serverCreation) { _serverService.MigrateTable(); } else { throw new Exception("Problem with creating database."); } List <PersonModel> dataCollection = _serializationService.GenerateRandomData(howManyRecords); if (dataCollection.Count > 0) { serializedData = await Task.Run(() => _serializationService.SerializeToJson(dataCollection)); } else { throw new Exception("Generated data collection was empty."); } byte[] compressed = _serializationService.ZipData(serializedData); if (compressed.Length > 0) { responsePostSuccessful = await _requestService.SendPostRequestAsync(compressed); } else { throw new Exception("Problem with compressing data."); } if (responsePostSuccessful) { bool responseGetSuccessful = await _requestService.SendGetRequestAsync(); if (responsePostSuccessful && responseGetSuccessful) { _requestService.DisposeClient(); } else { throw new Exception("Problem when sending GET request."); } } else { throw new Exception("Problem when sending POST request."); } } catch (Exception e) { _log.Error(e.Message); } }