public override IHttpActionResult Create(CreateTransactionForm form)
        {
            // Validation Sample
            List <string> possibleCardBrands = Enum.GetNames(typeof(CreditCardBrandEnum)).ToList();

            if (!possibleCardBrands.Contains(form.CreditCardBrand))
            {
                string errorMessage = string.Format(
                    "O Bandeira de Cartão \"{0}\" não existe. Bandeiras possíveis: {1}",
                    form.CreditCardBrand,
                    string.Join(", ", possibleCardBrands));
                ModelState.AddModelError("invalidCreditCardBrand", errorMessage);
            }
            // Future: More Validation on the Model

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            HttpResponse <CreateSaleResponse> transactionResponse = this.transactionService.Create(form);

            // Bypasses HttpStatusCode to client
            return(Content(transactionResponse.HttpStatusCode, transactionResponse.Response));
        }
        public void ShouldInvalidateInvalidCardBrandType()
        {
            CreateTransactionForm form = ModelFactory.BuildCreateTransactionForm();
            string invalidBrand        = "NotVisa";

            form.CreditCardBrand = invalidBrand;

            IHttpActionResult result = controller.Create(form);

            Assert.IsInstanceOfType(result, typeof(InvalidModelStateResult));
        }
Example #3
0
        public static CreateTransactionForm BuildCreateTransactionForm()
        {
            CreateTransactionForm createTransactionForm = new CreateTransactionForm
            {
                AmountInCents    = 10000,
                CreditCardBrand  = "Visa",
                CreditCardNumber = "4111111111111111",
                ExpMonth         = 10,
                ExpYear          = 22,
                SecurityCode     = 123,
                HolderName       = "LUKE SKYWALKER",
                InstallmentCount = 1
            };

            return(createTransactionForm);
        }
Example #4
0
        // ========================== Portfolio ====================================

        private void createTransactionToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (createTransactionForm == null)
            {
                createTransactionForm           = new CreateTransactionForm();
                this.IsMdiContainer             = true;
                createTransactionForm.MdiParent = this;
                MainPanel.Visible = false;
                createTransactionForm.FormClosed += CreateTransactionForm_FormClosed;
                createTransactionForm.Show();
            }
            else
            {
                createTransactionForm.Activate();
            }
        }
        public override HttpResponse <CreateSaleResponse> Create(CreateTransactionForm form)
        {
            // Converts string into one of CreditCardBrandEnum options
            CreditCardBrandEnum card = (CreditCardBrandEnum)Enum.Parse(typeof(CreditCardBrandEnum), form.CreditCardBrand);

            // Creates Transaction
            CreditCardTransaction transaction = new CreditCardTransaction()
            {
                AmountInCents = form.AmountInCents,
                CreditCard    = new CreditCard()
                {
                    CreditCardBrand  = card,
                    CreditCardNumber = form.CreditCardNumber,
                    ExpMonth         = form.ExpMonth,
                    ExpYear          = form.ExpYear,
                    HolderName       = form.HolderName,
                    SecurityCode     = form.SecurityCode.ToString()
                },
                InstallmentCount = form.InstallmentCount
            };

            // Cria requisição.
            CreateSaleRequest createSaleRequest = new CreateSaleRequest()
            {
                // Adiciona a transação na requisição.
                CreditCardTransactionCollection = new Collection <CreditCardTransaction>
                                                  (
                    new CreditCardTransaction[] { transaction }
                                                  ),
                Order = new Order()
                {
                    OrderReference = "NumeroDoPedido"
                }
            };

            // Autoriza a transação e recebe a resposta do gateway.
            HttpResponse <CreateSaleResponse> httpResponse = serviceClient.Sale.Create(createSaleRequest);

            return(httpResponse);
        }
 public abstract HttpResponse <CreateSaleResponse> Create(CreateTransactionForm form);
Example #7
0
 public abstract IHttpActionResult Create(CreateTransactionForm form);
 public override HttpResponse <CreateSaleResponse> Create(CreateTransactionForm form)
 {
     return(this.consumer.Create(form));
 }
 public override HttpResponse <CreateSaleResponse> Create(CreateTransactionForm form)
 {
     throw new NotImplementedException();
 }
Example #10
0
 private void CreateTransactionForm_FormClosed(object sender, FormClosedEventArgs e)
 {
     createTransactionForm = null;
 }