public ActionResult CreateOrcamento(OrcamentoViewModel pOrcamento, FormCollection form)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    //int? IdProd = pOrcamento.IdProduto;
                    //var getProd = ProdutoRepository.GetOne(IdProd);

                    //if (pOrcamento.Valor != null && getProd == null)
                    //    pOrcamento.ValorTotal = pOrcamento.Valor + getProd.Valor;
                    //else if (pOrcamento.Valor == null)
                    //    pOrcamento.ValorTotal = getProd.Valor;
                    //else
                        pOrcamento.Orcamento.ValorTotal = pOrcamento.Orcamento.Valor;

                    OrcamentoRepository create = new OrcamentoRepository();
                    create.Create(pOrcamento.Orcamento);
                    return RedirectToAction("ListOrcamentos").ComMensagemDeSucesso("Orçamento cadastrado com sucesso!");
                }
                else
                {
                    return View("CreateOrcamento");
                }
            }
            catch
            {
                throw;
            }
        }
        // GET: Orcamento/Create
        public ActionResult CreateOrcamento(OrcamentoViewModel pOrcamento)
        {
            if (pOrcamento == null)
            {
                var orcamento = OrcamentoRepository.GetOne(pOrcamento.Orcamento.IdOrcamento);
                OrcamentoRepository orc = new OrcamentoRepository();
                List<Produto> produtos = orc.GetProdutos(pOrcamento.Orcamento.IdOrcamento);

                var model = new OrcamentoViewModel
                {
                    Produtos = produtos,
                    Orcamento = orcamento

                };

                ViewBag.IdCliente = new SelectList(ClienteRepository.GetAll(), "IdCliente", "Nome");
                return View(model);
            }
            else
            {
                ViewBag.IdCliente = new SelectList(ClienteRepository.GetAll(), "IdCliente", "Nome");
                var model = "";
                return View(model);
            }
        }
 public ActionResult AddProdutos(FormCollection orcamentoForm, OrcamentoViewModel pOrcamento)
 {
     OrcamentoRepository orcamento = new OrcamentoRepository();
     ViewBag.IdCliente = new SelectList(ClienteRepository.GetAll(), "IdCliente", "Nome", pOrcamento.Orcamento.IdCliente);
     orcamento.AddProdutos(pOrcamento.Orcamento);
     var orc = orcamento.GetLast();
     pOrcamento.Produtos = orcamento.GetProdutos(orc.IdOrcamento);
     return View("CreateOrcamento" + pOrcamento.Orcamento);
 }
        // POST: api/Orcamento
        public HttpResponseMessage Post(Orcamento pOrcamento)
        {
            if (!ModelState.IsValid)
            {
                return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
            }

            try
            {
                OrcamentoRepository create = new OrcamentoRepository();
                create.Create(pOrcamento);
                return Request.CreateResponse(HttpStatusCode.OK);
            }
            catch (ArgumentException ex)
            {
                return Request.CreateErrorResponse(HttpStatusCode.NotFound, ex);
            }
        }
 // DELETE: api/Orcamento/5
 public HttpResponseMessage Delete(int pId)
 {
     try
     {
         OrcamentoRepository update = new OrcamentoRepository();
         var orcamento = OrcamentoRepository.GetOne(pId);
         if (orcamento.IdOrcamento != 0)
         {
             update.Delete(pId);
             return Request.CreateResponse(HttpStatusCode.OK);
         }
         else
         {
             return Request.CreateResponse(HttpStatusCode.BadRequest);
         }
     }
     catch (ArgumentException ex)
     {
         return Request.CreateErrorResponse(HttpStatusCode.NotFound, ex);
     }
 }
        // PUT: api/Orcamento/5
        public HttpResponseMessage Put(int pId, Orcamento pOrcamento)
        {
            if (!ModelState.IsValid)
            {
                return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ModelState);
            }

            if (pId != pOrcamento.IdCliente)
            {
                return Request.CreateResponse(HttpStatusCode.BadRequest);
            }

            try
            {
                OrcamentoRepository update = new OrcamentoRepository();
                update.Update(pOrcamento);
                return Request.CreateResponse(HttpStatusCode.OK);
            }
            catch (ArgumentException ex)
            {
                return Request.CreateErrorResponse(HttpStatusCode.NotFound, ex);
            }
        }
        public ActionResult EditOrcamento(int pId, Orcamento pOrcamento)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    ViewBag.IdProduto = new SelectList(ProdutoRepository.GetAll(), "IdProduto", "Nome", pOrcamento.IdProduto);
                    //int? IdProd = pOrcamento.IdProduto;
                    //var getProd = ProdutoRepository.GetOne(IdProd);
                    //pOrcamento.ValorTotal = pOrcamento.Valor + getProd.Valor;

                    OrcamentoRepository edit = new OrcamentoRepository();
                    edit.Update(pOrcamento);
                    return RedirectToAction("ListOrcamentos").ComMensagemDeSucesso("Orçamento editado com sucesso!");
                }
                else
                {
                    return View("EditOrcamento");
                }
            }
            catch
            {
                throw;
            }
        }
        // GET: Orcamento/Details/5
        public ActionResult DetailsOrcamento(int pId)
        {
            try
            {
                var orcamento = OrcamentoRepository.GetOne(pId);
                OrcamentoRepository orc = new OrcamentoRepository();
                List<Produto> produtos = orc.GetProdutos(pId);

                var model = new OrcamentoViewModel
                {
                    Produtos = produtos,
                    Orcamento = orcamento

                };

                return View(model);
            }
            catch
            {
                throw;
            }
        }
 public ActionResult DeleteOrcamento(int pId, Orcamento pOrcamento)
 {
     try
     {
         OrcamentoRepository exclui = new OrcamentoRepository();
         exclui.Delete(pId);
         return RedirectToAction("ListOrcamentos").ComMensagemDeSucesso("Orçamento excluído com sucesso!");
     }
     catch
     {
         throw;
     }
 }