void PutPatrimonioDeveRetornarOStatusNotFound()
        {
            var patrimonio = new PatrimonioParaAtualizarDto("computador", 1, "notebook");

            var atual = _controller.PutPatrimonio(100, patrimonio);

            Assert.IsType <NotFoundResult>(atual);
        }
        void PutPatrimonioDeveAtualziarOPatrimonioMouse()
        {
            var esperado = new PatrimonioParaAtualizarDto("mouse", 1, "com fio");

            _controller.PutPatrimonio(2, esperado);
            var okObjectResult = (OkObjectResult)_controller.GetPatrimonio(2);
            var atual          = (PatrimonioDto)okObjectResult.Value;

            Assert.Equal(esperado.Descricao, atual.Descricao);
        }
        public IActionResult PutPatrimonio([FromRoute] int tomboId, [FromBody] PatrimonioParaAtualizarDto patrimonioAtualizado)
        {
            if (patrimonioAtualizado == null)
            {
                var erro = new
                {
                    Mensagem   = "E necessario informar um patrimonio",
                    StatusCode = 400
                };

                return(BadRequest(erro));
            }
            if (!ModelState.IsValid)
            {
                var erro = new
                {
                    Mesagem    = ModelState.Values,
                    StatusCode = 400
                };

                return(BadRequest(erro));
            }

            if (!_repository.MarcaExiste(patrimonioAtualizado.MarcaId))
            {
                var erro = new
                {
                    Mensagem   = "Marca informada nao encontrada.O Patrimonio deve conter uma marca existente.",
                    StatusCode = 400
                };
                return(BadRequest(erro));
            }
            var patrimonio = _repository.GetPatrimonio(tomboId);

            if (patrimonio == null)
            {
                return(NotFound());
            }
            Mapper.Map(patrimonioAtualizado, patrimonio);

            if (!_repository.Salvar())
            {
                var erro = new
                {
                    Mesagem    = "Ocorreu um erro ao salvar as alteracoes no banco",
                    StatusCode = 500
                };

                return(StatusCode(500, erro));
            }

            return(NoContent());
        }