public async Task <IActionResult> Post() { _log.Called(); string json = ""; List <PersonModel> persons = new List <PersonModel>(); byte[] received = new byte[4096]; using (var ms = new MemoryStream(2048)) { try { await Request.Body.CopyToAsync(ms); received = ms.ToArray(); } catch (Exception e) { _log.Error("Could receive data. " + e.Message); return(StatusCode((int)HttpStatusCode.BadRequest)); } } json = _serializationService.UnzipData(received); if (!string.IsNullOrEmpty(json)) { persons = _serializationService.DeserializeDataFromJson(json); } else { _log.Error("Could not decompress data."); return(StatusCode((int)HttpStatusCode.BadRequest)); } if (persons.Count > 0) { foreach (var person in persons) { _repository.AddItem(person); } } else { _log.Error("Data collection empty."); return(StatusCode((int)HttpStatusCode.BadRequest)); } return(StatusCode((int)HttpStatusCode.OK)); }