Exemplo n.º 1
0
        void PostPatrimonioDeveRetornarOStatusCreatedAt()
        {
            var patrimonio = new PatrimonioParaAdicionarDto("Patrimonio Criado", 0, "teste");
            var atual      = _controller.PostPatrimonio(patrimonio);

            Assert.IsType <CreatedResult>(atual);
        }
Exemplo n.º 2
0
        void PostPatrimonioDeveCriarOPatrimonioMesa()
        {
            var patrimonio = new PatrimonioParaAdicionarDto("Mesa", 0, "longa");
            var esperado   = Mapper.Map <Patrimonio>(patrimonio);

            var createdAtRoute = (CreatedResult)_controller.PostPatrimonio(patrimonio);
            var novoPatrimonio = (PatrimonioDto)createdAtRoute.Value;
            var atual          = Mapper.Map <Patrimonio>(novoPatrimonio);

            Assert.Equal(esperado, atual);
        }
        public ActionResult PostPatrimonio([FromBody] PatrimonioParaAdicionarDto patrimonioNovo)
        {
            if (patrimonioNovo == null)
            {
                var erro = new
                {
                    Mesagem    = "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(patrimonioNovo.MarcaId))
            {
                var erro = new
                {
                    Mesagem    = "Marca informada nao encontrada. O Patrimonio deve conter uma marca existente.",
                    StatusCode = 400
                };
                return(BadRequest(erro));
            }
            var patrimonio = Mapper.Map <Patrimonio>(patrimonioNovo);

            _repository.AdicionaPatrimonio(patrimonio);

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

                return(StatusCode(500, erro));
            }

            var patrimonioCriado = Mapper.Map <PatrimonioDto>(patrimonio);

            if (Request != null)
            {
                var uri = ((Request.IsHttps) ? "https://" : "http://")
                          + Request.Host.ToUriComponent()
                          + Request.Path.ToUriComponent()
                          + patrimonioCriado.TomboId;

                return(Created(uri, patrimonioCriado));
            }

            return(Created("ambiente de teste", patrimonioCriado));
        }