public async Task <ActionResult <ProdutoServicoViewModel> > Adicionar(ProdutoServicoViewModel produtoServicoViewModel)
        {
            if (!ModelState.IsValid)
            {
                return(CustomResponse(ModelState));
            }

            await _produtoServicoService.Adicionar(_mapper.Map <ProdutoServico>(produtoServicoViewModel, Tratamento));

            return(CustomResponse(produtoServicoViewModel));
        }
        public async Task <IActionResult> Get([FromRoute] int id)
        {
            try
            {
                ProdutoServico produtoServico = produtoServicoRepositorio.FindBy(p => p.Id == id && p.Excluido != true).FirstOrDefault();

                if (produtoServico == null)
                {
                    return(NotFound());
                }

                ProdutoServicoViewModel model = _mapper.Map <ProdutoServicoViewModel>(produtoServico);

                return(Ok(model));
            }
            catch (Exception ex)
            {
                return(BadRequest(ex.ToString()));
            }
        }
        public async Task <IActionResult> Post([FromBody] ProdutoServicoViewModel model)
        {
            try
            {
                ProdutoServico obj = _mapper.Map <ProdutoServico>(model);
                obj.Ativo    = true;
                obj.Excluido = false;


                await produtoServicoRepositorio.AddAndSaveAsync(obj);

                model.Id = obj.Id;

                return(Ok(model));
            }
            catch (Exception ex)
            {
                return(BadRequest(ex.ToString()));
            }
        }
        public async Task <IActionResult> Get()
        {
            try
            {
                List <ProdutoServico> list = produtoServicoRepositorio.FindBy(p => p.Excluido != true).ToList();

                List <ProdutoServicoViewModel> modelList = new List <ProdutoServicoViewModel>();

                foreach (ProdutoServico item in list)
                {
                    ProdutoServicoViewModel model = _mapper.Map <ProdutoServicoViewModel>(item);
                    model.Id = item.Id;
                    modelList.Add(model);
                }
                return(Ok(modelList));
            }
            catch (Exception ex)
            {
                return(BadRequest(ex.ToString()));
            }
        }
        public async Task <IActionResult> Patch([FromRoute] int id, [FromBody] ProdutoServicoViewModel model)
        {
            try
            {
                ProdutoServico obj = await produtoServicoRepositorio.FindAsync(id);

                if (obj == null)
                {
                    return(NotFound("Erro ao atualizar"));
                }

                obj.Descricao = model.Descricao;
                obj.Ativo     = true;
                obj.Excluido  = false;

                await produtoServicoRepositorio.EditAndSaveAsync(obj);

                return(Ok(model));
            }
            catch (Exception ex)
            {
                return(BadRequest(ex.ToString()));
            }
        }
        public async Task <ActionResult <ProdutoServicoViewModel> > Atualizar(Guid id, ProdutoServicoViewModel produtoServicoViewModel)
        {
            if (id != produtoServicoViewModel.Id)
            {
                NotificarErro("O id informado não é o mesmo que foi passado na query");
                return(CustomResponse(produtoServicoViewModel));
            }

            if (!ModelState.IsValid)
            {
                return(CustomResponse(ModelState));
            }

            await _produtoServicoService.Atualizar(_mapper.Map <ProdutoServico>(produtoServicoViewModel, Tratamento));

            return(CustomResponse(produtoServicoViewModel));
        }