public HttpResponseMessage GetList(long id)
        {
            List <tbPropostaCarta> tpropostas = new List <tbPropostaCarta>();
            List <PropostaCarta>   propostas  = new List <PropostaCarta>();
            clsCRUDConsorcio       CRUD       = new clsCRUDConsorcio();

            try
            {
                tpropostas = CRUD.readPropostasCarta(id);

                foreach (tbPropostaCarta item in tpropostas)
                {
                    PropostaCarta pCarta = new PropostaCarta();

                    pCarta.Id               = item.cd_propostacarta;
                    pCarta.IdCarta          = item.cd_cartacredito;
                    pCarta.IdComprador      = item.cd_comprador;
                    pCarta.IdVendedor       = item.cd_vendedor;
                    pCarta.StatusProposta   = item.cd_statusproposta;
                    pCarta.MensagemProposta = item.de_mensagemproposta;

                    propostas.Add(pCarta);

                    pCarta = null;
                }

                return(this.Request.CreateResponse(HttpStatusCode.OK, propostas));
            }
            catch (Exception ex)
            {
                return(this.Request.CreateResponse(HttpStatusCode.BadRequest, ex.Message));
            }
        }
        public ActionResult Create([Bind(Include = "IdCarta,IdVendedor")] PropostaCarta proposta)
        {
            HttpWebRequest   request;
            HttpWebResponse  response;
            StreamWriter     sw;
            clsJSONFormatter formatter = new clsJSONFormatter();
            string           strJSON   = "";


            if (ModelState.IsValid)
            {
                request = (HttpWebRequest)WebRequest.Create(ConfigurationSettings.AppSettings["URLPropostaCarta"]);

                request.ContentType = "application/json";
                request.Accept      = "application/json";
                request.Method      = "POST";
                request.KeepAlive   = false;

                proposta.IdComprador      = (long)Session["CompradorID"];
                proposta.StatusProposta   = (int)PropostaCarta.enStatusProposta.EmAnalise;
                proposta.MensagemProposta = "";

                strJSON = formatter.ClasstoJSON(proposta);

                sw = new StreamWriter(request.GetRequestStream());
                sw.Write(strJSON);
                sw.Flush();

                response = (HttpWebResponse)request.GetResponse();

                return(RedirectToAction("Index", "Home", new { area = "" }));
            }

            return(View(proposta));
        }
        public HttpResponseMessage Post([FromBody] PropostaCarta value)
        {
            tbPropostaCarta  newPropostaCarta = new tbPropostaCarta();
            clsCRUDConsorcio CRUD             = new clsCRUDConsorcio();

            try
            {
                newPropostaCarta.cd_cartacredito     = value.IdCarta;
                newPropostaCarta.cd_comprador        = value.IdComprador;
                newPropostaCarta.cd_vendedor         = value.IdVendedor;
                newPropostaCarta.de_mensagemproposta = value.MensagemProposta;

                CRUD.insertPropostaCarta(newPropostaCarta);

                return(this.Request.CreateResponse(HttpStatusCode.NoContent));
            }
            catch (Exception ex)
            {
                return(this.Request.CreateResponse(HttpStatusCode.BadRequest, ex.Message));
            }
        }
        // GET: PropostaCartaMVC/Create
        public ActionResult Create(long id)
        {
            HttpWebRequest   request;
            HttpWebResponse  response;
            StreamReader     sr;
            clsJSONFormatter formatter = new clsJSONFormatter();
            CartaCredito     carta     = new CartaCredito();
            PropostaCarta    proposta  = new PropostaCarta();

            try
            {
                request = (HttpWebRequest)WebRequest.Create(String.Concat(ConfigurationSettings.AppSettings["URLCarta"], "/", id));

                request.ContentType = "application/json";
                request.Accept      = "application/json";
                request.Method      = "GET";
                request.KeepAlive   = false;

                response = (HttpWebResponse)request.GetResponse();

                sr = new StreamReader(response.GetResponseStream());

                carta = (CartaCredito)formatter.JSONtoClass(sr.ReadToEnd(), new CartaCredito());

                proposta.IdCarta    = carta.Id;
                proposta.IdVendedor = carta.IdVendedor;

                ViewData["carta-entrada"]    = carta.ValorEntrada;
                ViewData["carta-qtdparcela"] = carta.QtdParcelas;
                ViewData["carta-vlrparcela"] = carta.ValorParcela;
                ViewData["carta-taxajuros"]  = carta.TaxaJuros;
                ViewData["carta-indexador"]  = carta.Indexador;

                return(View(proposta));
            }
            catch (Exception ex)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest, ex.Message));
            }
        }
        public HttpResponseMessage Put(long id, [FromBody] PropostaCarta value)
        {
            tbPropostaCarta  upPropostaCarta = new tbPropostaCarta();
            clsCRUDConsorcio CRUD            = new clsCRUDConsorcio();

            try
            {
                upPropostaCarta.cd_propostacarta    = id;
                upPropostaCarta.cd_cartacredito     = value.IdCarta;
                upPropostaCarta.cd_comprador        = value.IdComprador;
                upPropostaCarta.cd_vendedor         = value.IdVendedor;
                upPropostaCarta.cd_statusproposta   = value.StatusProposta;
                upPropostaCarta.de_mensagemproposta = value.MensagemProposta;

                CRUD.updatePropostaCarta(upPropostaCarta);

                return(this.Request.CreateResponse(HttpStatusCode.OK));
            }
            catch (Exception ex)
            {
                return(this.Request.CreateResponse(HttpStatusCode.BadRequest, ex.Message));
            }
        }
        public HttpResponseMessage Get(long id)
        {
            tbPropostaCarta  readProposta = new tbPropostaCarta();
            clsCRUDConsorcio CRUD         = new clsCRUDConsorcio();
            PropostaCarta    proposta     = new PropostaCarta();

            try
            {
                readProposta = CRUD.readPropostaCarta(id);

                proposta.Id               = readProposta.cd_propostacarta;
                proposta.IdCarta          = readProposta.cd_cartacredito;
                proposta.IdComprador      = readProposta.cd_comprador;
                proposta.IdVendedor       = readProposta.cd_vendedor;
                proposta.MensagemProposta = readProposta.de_mensagemproposta;
                proposta.StatusProposta   = readProposta.cd_statusproposta;

                return(this.Request.CreateResponse(HttpStatusCode.OK, proposta));
            }
            catch (Exception ex)
            {
                return(this.Request.CreateResponse(HttpStatusCode.BadRequest, ex.Message));
            }
        }
        public ActionResult PropostaStatusTransit(long idProposta, int status)
        {
            HttpWebRequest   request;
            HttpWebResponse  response;
            StreamReader     sr;
            StreamWriter     sw;
            string           strJSON   = "";
            clsJSONFormatter formatter = new clsJSONFormatter();
            PropostaCarta    proposta  = new PropostaCarta();

            try
            {
                if (ModelState.IsValid)
                {
                    request = (HttpWebRequest)WebRequest.Create(String.Concat(ConfigurationSettings.AppSettings["URLPropostaCarta"], "/", idProposta));

                    request.ContentType = "application/json";
                    request.Accept      = "application/json";
                    request.Method      = "GET";
                    request.KeepAlive   = false;

                    response = (HttpWebResponse)request.GetResponse();

                    sr = new StreamReader(response.GetResponseStream());

                    proposta = (PropostaCarta)formatter.JSONtoClass(sr.ReadToEnd(), new PropostaCarta());

                    switch (status)
                    {
                    case (int)PropostaCarta.enStatusProposta.Aprovada:
                        if (proposta.StatusProposta != (int)PropostaCarta.enStatusProposta.EmAnalise)
                        {
                            return(new HttpStatusCodeResult(HttpStatusCode.NotFound, "Proposta não pode ser Aprovada!"));
                        }
                        break;

                    case (int)PropostaCarta.enStatusProposta.EmTransferencia:
                        if (proposta.StatusProposta != (int)PropostaCarta.enStatusProposta.Aprovada)
                        {
                            return(new HttpStatusCodeResult(HttpStatusCode.NotFound, "Proposta não pode ser Transferida!"));
                        }
                        break;

                    case (int)PropostaCarta.enStatusProposta.Concluida:
                        if (proposta.StatusProposta != (int)PropostaCarta.enStatusProposta.EmTransferencia)
                        {
                            return(new HttpStatusCodeResult(HttpStatusCode.NotFound, "Proposta não pode ser Concluida!"));
                        }
                        break;

                    case (int)PropostaCarta.enStatusProposta.Cancelada:
                        if (proposta.StatusProposta != (int)PropostaCarta.enStatusProposta.EmAnalise)
                        {
                            return(new HttpStatusCodeResult(HttpStatusCode.NotFound, "Proposta não pode ser Cancelada!"));
                        }
                        break;
                    }

                    proposta.StatusProposta = status;

                    request.Abort();
                    response.Close();
                    response.Dispose();
                    sr.Close();
                    sr.Dispose();

                    request = (HttpWebRequest)WebRequest.Create(String.Concat(ConfigurationSettings.AppSettings["URLPropostaCarta"], "/", idProposta));

                    request.ContentType = "application/json";
                    request.Accept      = "application/json";
                    request.Method      = "PUT";
                    request.KeepAlive   = false;

                    strJSON = formatter.ClasstoJSON(proposta);

                    sw = new StreamWriter(request.GetRequestStream());
                    sw.Write(strJSON);
                    sw.Flush();

                    response = (HttpWebResponse)request.GetResponse();

                    request.Abort();
                    response.Close();
                    response.Dispose();
                    sw.Close();
                    sw.Dispose();
                }

                return(RedirectToAction("PropostasCarta", new { id = idProposta }));
            }
            catch (Exception ex)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest, ex.Message));
            }
        }