コード例 #1
0
        private void Buy(CardOfCredit card, Request request, bool saveCard)
        {
            card.Subscribe(MessageServer);

            var gateway      = new MundiPaggClient();
            var priceInCents = (long)request.Total * 100;
            var order        = new Order(priceInCents,
                                         request.Id.ToString(), _userFromRequest.Email);

            var msg = gateway.Pay(order, card);

            foreach (var message in msg)
            {
                if (saveCard && message.StatusCode == 201)
                {
                    _userFromRequest.InstantBuyKey = message.InstantBuyKey;
                }

                request.StatusId = message.StatusCode;
                card.Notificar(message);
            }
            var resultSave = _context.SaveChange();

            Contract.Assert(resultSave > 0);
        }
コード例 #2
0
        /// <summary>makes the purchase of tickets</summary>
        /// <param name="model">Request</param>
        /// <exception cref="InvalidOperationException">Ocorre quando não há itens no pedido</exception>
        public void Buy(IBuyOnCard model)
        {
            var request = SaveRequest(model);
            var card    = new CardOfCredit(model);

            Buy(card, request, model.SaveCard);
        }
コード例 #3
0
        /// <exception cref="InvalidOperationException">Ocorre quando não há itens no pedido</exception>
        public void Buy(IBuyOnClick model)
        {
            var user = _context.UsersInfo.FindOrDefault(model.UserId);

            if (user == null)
            {
                throw new InvalidOperationException("User not found");
            }
            if (!user.InstantBuyKey.HasValue)
            {
                throw new InvalidOperationException("You not have an card configution, you need sends  informations from card of credit");
            }

            Contract.EndContractBlock();

            var request = SaveRequest(model);

            var card = new CardOfCredit(request.User.InstantBuyKey.Value);

            Buy(card, request, false);
        }