Exemplo n.º 1
0
        public void Post_Rebel_Successfully()
        {
            //Arrange
            var name   = "UnitTest";
            var planet = "PlanetTest";

            var rebelDto = new Rebel()
            {
                Name   = name,
                Planet = planet
            };
            var list = new RebelList()
            {
                Rebels = new List <Rebel>()
                {
                    rebelDto
                }
            };
            //Act
            var rebel = _con.Post(list);

            //ASSERT
            var actionResult = rebel.Result;
            var apiResult    = (actionResult as OkObjectResult).Value as ApiResult;

            Assert.NotNull(apiResult);
        }
        public ActionResult <ApiResult> Post([FromBody] RebelList rebels)
        {
            _logger.LogInformation("Start of RebelsController.Post()");
            var          result   = new ApiResult();
            ActionResult response = null;

            try
            {
                if (!ModelState.IsValid)
                {
                    result.Message = "Invalid rebel information.";
                    result.IsError = true;
                    _logger.LogWarning("There was a problem creating a new Rebel, required data");
                    response = BadRequest(result);
                }
                else
                {
                    rebels.Rebels.ForEach(x => x.Date = DateTime.Now);
                    _rebelRepository.AddRebels(rebels.Rebels);

                    result.Message = "Rebels added succesfullly.";
                    result.Data    = rebels.Rebels;
                    response       = Ok(result);
                    _logger.LogDebug("Rebels inserted");
                }
            }
            catch (SqliteException ex)
            {
                _logger.LogError("An error ocurred while Post method was running, error:", ex.Message);
                response = BadRequest(result);
            }
            _logger.LogInformation("End of RebelsController.Post()");

            return(response);
        }