public TicketGames.PagSeguro.Model.Billet MappingBillet(Domain.Model.Participant participant, Domain.Model.OrderDeliveryAddress orderDeliveryAddress, TicketGames.Domain.Model.Billet billet) { TicketGames.PagSeguro.Model.Billet billetPagSeguro = new PagSeguro.Model.Billet(); billetPagSeguro.Price = billet.Value; billetPagSeguro.ShippingAddress = new TicketGames.PagSeguro.Model.ShippingAddress(); billetPagSeguro.ShippingAddress.Street = orderDeliveryAddress.Street; billetPagSeguro.ShippingAddress.Number = orderDeliveryAddress.Number; billetPagSeguro.ShippingAddress.Complement = orderDeliveryAddress.Complement; billetPagSeguro.ShippingAddress.District = orderDeliveryAddress.District; billetPagSeguro.ShippingAddress.ZipCode = orderDeliveryAddress.ZipCode; billetPagSeguro.ShippingAddress.City = orderDeliveryAddress.City; billetPagSeguro.ShippingAddress.State = orderDeliveryAddress.State; billetPagSeguro.Buyer = new TicketGames.PagSeguro.Model.Buyer(); billetPagSeguro.Session = billet.Session; billetPagSeguro.SenderHash = billet.SenderHash; billetPagSeguro.Buyer.Name = participant.Name; billetPagSeguro.Buyer.CPF = participant.CPF; billetPagSeguro.Buyer.DDD = "11"; billetPagSeguro.Buyer.Phone = "980203026"; billetPagSeguro.Buyer.Mail = participant.Email; return(billetPagSeguro); }
public long Redemption(PagSeguro.Model.Billet billet, Model.Transaction transaction, Order order, List <Configuration> settings) { var pagSeguroSettings = settings.Where(s => s.Key.Contains("pagSeguro")).ToList(); Dictionary <string, string> dictionary = new Dictionary <string, string>(); pagSeguroSettings.ForEach(s => dictionary.Add(s.Key, s.Value)); PagSeguro.Transaction trans = new PagSeguro.Transaction(dictionary); var resultTransaction = new Domain.Model.Transaction(); var orderCreate = this._orderRepository.Create(order); if (orderCreate.Id > 0) { billet.OrderId = orderCreate.Id; if (transaction.Value > 0) { transaction.OrderId = orderCreate.Id; transaction.Description = string.Format(transaction.Description, orderCreate.Id); resultTransaction = this._transactionRepository.CreateTransaction(transaction); //Order Debited this._orderRepository.CreateOrderHistory(new OrderHistory() { OrderId = orderCreate.Id, OrderStatusId = 9 }); } var pagSeguro = trans.BilletCheckout(billet); if (pagSeguro.Success) { Domain.Model.Billet billetCreate = new Model.Billet(); billetCreate.OrderId = orderCreate.Id; billetCreate.SenderHash = billet.SenderHash; billetCreate.Session = billet.Session; billetCreate.Value = order.Money; billetCreate.Name = billet.Buyer.Name; billetCreate.CPF = billet.Buyer.CPF; billetCreate.Email = billet.Buyer.Mail; billetCreate.Street = billet.ShippingAddress.Street; billetCreate.Number = billet.ShippingAddress.Number; billetCreate.Complement = billet.ShippingAddress.Complement; billetCreate.ZipCode = billet.ShippingAddress.ZipCode; billetCreate.District = billet.ShippingAddress.District; billetCreate.City = billet.ShippingAddress.City; billetCreate.State = billet.ShippingAddress.State; billetCreate.FeeAmount = Convert.ToSingle(pagSeguro.FeeAmount); billetCreate.NetAmount = Convert.ToSingle(pagSeguro.NetAmount); billetCreate.Code = pagSeguro.Code; billetCreate.PaymentLink = pagSeguro.PaymentLink; this._orderRepository.CreateBilletByOrderId(billetCreate); int type = Enum.Parse(typeof(Domain.Model.Enum.OrderStatus), pagSeguro.TransactionStatus).GetHashCode(); //Order Debited this._orderRepository.CreateOrderHistory(new OrderHistory() { OrderId = orderCreate.Id, OrderStatusId = type }); this._orderRepository.UpdateOrderDeliveryAddressByCartId(order.CartId, orderCreate.Id); this._cartRepository.UpdateStatusByCartId(order.CartId, 1); } return(orderCreate.Id); } return(0); }