public ActionResult Vender(FormCollection valores)
        {
            var produto = valores["produto"];
            var quantidade = Int16.Parse(valores["quantidade"]);
            var valor = Decimal.Parse(valores["valor"]);
            //formas de pagamento diversas

            var paraProcessar = new RepositorioDePagamentosParaProcessar();

            for(int i=0;i<quantidade;i++)
                paraProcessar.NovaVendaParaProcessar(new Venda(produto, 1, valor));

            ViewBag.Venda = string.Format("Venda de {0} {1} realizada. Aguarde Confirmação de pagamento.",quantidade,produto);
            return RedirectToAction("Index");
        }
예제 #2
0
        public override void Run()
        {
            Trace.WriteLine("ProcessadorDePagamentos entry point called", "Infrmation");

            var pagamentosParaProcessar = new RepositorioDePagamentosParaProcessar();

            while (true)
            {
                Trace.TraceInformation("obtendo pagamento para processar...");
                var pagamentoParaProcessar = pagamentosParaProcessar.ProximoPagamentoParaProcessar();
                if (pagamentoParaProcessar != null)
                {
                    Trace.TraceInformation("processando pagamento");
                    Thread.Sleep(15000);
                    Trace.TraceInformation("pagamento processado");
                    pagamentosParaProcessar.PagamentoProcessado(pagamentoParaProcessar);
                }
                else
                {
                    Trace.TraceInformation("nenhum pagamento para processar, dormindo...");
                    Thread.Sleep(60000);
                }
            }
        }