示例#1
0
        public async Task <IActionResult> Create([FromBody] PatientCard patientCard)
        {
            await _card.Create(patientCard);

            return(Ok("Новая карта пациента успешно создана"));
        }
        public string Create(PaymentsData paymentDados)
        {
            try
            {
                string codBarras = "";

                //Verifica o ID do Cliente
                if (paymentDados.Id_Client <= 0)
                {
                    return("Cliente Inválido!");
                }

                //Verifica já o Buyer já está cadastrado, caso não esteja já cadastra
                var buyer = _buyer.FindAll().Where(p => p.CPF == paymentDados.CPF).FirstOrDefault();
                if (buyer == null)
                {
                    buyer = _buyer.Create(new Buyer
                    {
                        Id_Client = paymentDados.Id_Client,
                        CPF       = paymentDados.CPF,
                        Email     = paymentDados.Email,
                        Name      = paymentDados.Name_Buyer
                    });
                }
                else if (buyer.Name != paymentDados.Name_Buyer || buyer.Email != buyer.Email)
                {
                    return("CPF informado do buyer já existe para outro buyer!");
                }

                //card
                if (paymentDados.Type == "Cartao")
                {
                    var card = _card.FindAll().Where(c => c.Id_Buyer == buyer.Id).FirstOrDefault();
                    if (card == null)
                    {
                        card = _card.Create(new Card
                        {
                            Holder_name     = paymentDados.Holder_name,
                            Number          = paymentDados.Number,
                            Expiration_date = paymentDados.Expiration_date,
                            CVV             = Convert.ToInt32(paymentDados.CVV),
                            Id_Buyer        = Convert.ToInt64(buyer.Id)
                        });
                    }

                    //pagamento com cartão
                    var payment = _payment.Create(new Payment()
                    {
                        Id_Buyer   = Convert.ToInt64(buyer.Id),
                        Id_Card    = Convert.ToInt64(card.Id),
                        Amount     = paymentDados.Amount,
                        Type       = paymentDados.Type,
                        Card       = paymentDados.Card,
                        Status     = (buyer.Name != card.Holder_name ? "Pendente" : "Efetivado"),
                        Cod_barras = ""
                    });
                }
                else //Boleto
                {
                    //pagamento no boleto
                    codBarras = GerarCod();
                    var payment = _payment.Create(new Payment()
                    {
                        Id_Buyer   = Convert.ToInt64(buyer.Id),
                        Amount     = paymentDados.Amount,
                        Type       = paymentDados.Type,
                        Card       = paymentDados.Card,
                        Status     = "Aguardando Pagamento",
                        Cod_barras = codBarras
                    });
                }

                return(codBarras == "" ? "Pagamento cadastrado!" : codBarras);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }