Ejemplo n.º 1
0
        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));
        }