public Models.TbOrdemServicoItem Salvar(Models.TbOrdemServicoItem os)
        {
            db.Add(os);
            db.SaveChanges();

            return(os);
        }
        public Models.TbOrdemServicoItem ParaTabela(Models.Request.TbOrdemServicoItemRequest request)
        {
            Models.TbOrdemServicoItem func = new Models.TbOrdemServicoItem();
            func.DsQtd          = request.ds_qtd;
            func.IdOrdemServico = request.id_ordem_servico;
            func.IdProduto      = request.id_produto;

            return(func);
        }
        public Models.TbOrdemServicoItem Salvar(Models.TbOrdemServicoItem save)
        {
            if (save.DsQtd <= 0)
            {
                throw new System.Exception("Valor incorreto");
            }

            return(db.Salvar(save));
        }
        public Models.TbOrdemServicoItem Alterar(int id, Models.TbOrdemServicoItem novo)
        {
            if (novo.DsQtd <= 0)
            {
                throw new System.Exception("Valor obrigatório");
            }

            return(db.Alterar(id, novo));
        }
        public Models.Response.TbOrdemServicoItemResponse ParaResponse(Models.TbOrdemServicoItem ln)
        {
            Models.Response.TbOrdemServicoItemResponse resp = new Models.Response.TbOrdemServicoItemResponse();
            resp.id_ordem_servico_item = ln.IdOrdemServicoItem;
            resp.ds_qtd           = ln.DsQtd;
            resp.id_ordem_servico = ln.IdOrdemServico;
            resp.id_produto       = ln.IdProduto;

            return(resp);
        }
        public Models.TbOrdemServicoItem Deletar(int id)
        {
            Models.TbOrdemServicoItem os = db.TbOrdemServicoItem.FirstOrDefault(x => x.IdOrdemServico == id);

            if (os != null)
            {
                db.TbOrdemServicoItem.Remove(os);
                db.SaveChanges();
            }
            return(os);
        }
        public ActionResult <Models.Response.TbOrdemServicoItemResponse> Deletar(int id)
        {
            try {
                Models.TbOrdemServicoItem ln = buss.Deletar(id);

                Models.Response.TbOrdemServicoItemResponse resp = util.ParaResponse(ln);
                return(resp);
            } catch (System.Exception ex) {
                return(BadRequest(
                           new Models.Response.ErroResponse(404, ex.Message)
                           ));
            }
        }
        public ActionResult <Models.Response.TbOrdemServicoItemResponse> Alterar(int id, Models.Request.TbOrdemServicoItemRequest request)
        {
            try {
                Models.TbOrdemServicoItem ln = util.ParaTabela(request);
                buss.Alterar(id, ln);

                Models.Response.TbOrdemServicoItemResponse resp = util.ParaResponse(ln);
                return(resp);
            } catch (System.Exception ex) {
                return(BadRequest(
                           new Models.Response.ErroResponse(404, ex.Message)
                           ));
            }
        }
        public ActionResult <Models.Response.TbOrdemServicoItemResponse> Inserir(Models.Request.TbOrdemServicoItemRequest request)
        {
            try {
                Models.TbOrdemServicoItem func = util.ParaTabela(request);
                buss.Salvar(func);

                Models.Response.TbOrdemServicoItemResponse resp = util.ParaResponse(func);
                return(resp);
            } catch (System.Exception ex) {
                return(BadRequest(
                           new Models.Response.ErroResponse(404, ex.Message)
                           ));
            }
        }
        public Models.TbOrdemServicoItem Alterar(int id, Models.TbOrdemServicoItem novo)
        {
            Models.TbOrdemServicoItem prod = db.TbOrdemServicoItem.FirstOrDefault(x => x.IdOrdemServicoItem == id);

            if (prod != null)
            {
                prod.IdOrdemServico = novo.IdOrdemServico;
                prod.IdProduto      = novo.IdProduto;
                prod.DsQtd          = novo.DsQtd;

                db.SaveChanges();
            }

            return(prod);
        }