public long Redemption(PagSeguro.Model.Credit credit, Domain.Model.Transaction transaction, Domain.Model.Order order) { PagSeguro.Transaction trans = new PagSeguro.Transaction(); var resultTransaction = new Domain.Model.Transaction(); var orderCreate = this._orderRepository.Create(order); if (orderCreate.Id > 0) { credit.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.CreditCheckout(credit); if (pagSeguro.Success) { Domain.Model.Credit creditCreate = new Model.Credit(); creditCreate.OrderId = orderCreate.Id; creditCreate.Owner = credit.Owner; creditCreate.Brand = credit.Brand; creditCreate.SenderHash = credit.SenderHash; creditCreate.CreditCardToken = credit.CreditCardToken; creditCreate.Session = credit.Session; creditCreate.Parcel = credit.Parcel.Quantity; creditCreate.Value = credit.Parcel.Value; creditCreate.SubTotal = order.Money; creditCreate.Holder = credit.CreditCardHolder.Name; creditCreate.CPF = credit.CreditCardHolder.CPF; creditCreate.DateNasc = credit.CreditCardHolder.BirthDate; creditCreate.Contact = credit.CreditCardHolder.DDD + credit.CreditCardHolder.Phone; creditCreate.Street = credit.BillingAddress.Street; creditCreate.Number = credit.BillingAddress.Number; creditCreate.Complement = credit.BillingAddress.Complement; creditCreate.ZipCode = credit.BillingAddress.ZipCode; creditCreate.District = credit.BillingAddress.District; creditCreate.City = credit.BillingAddress.City; creditCreate.State = credit.BillingAddress.State; creditCreate.FeeAmount = Convert.ToSingle(pagSeguro.FeeAmount); creditCreate.NetAmount = Convert.ToSingle(pagSeguro.NetAmount); creditCreate.Code = pagSeguro.Code; this._orderRepository.CreateCreditByOrderId(creditCreate); 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); }
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); }