Exemplo n.º 1
0
        public async Task <IEnumerable <PaymentInfo> > GetPaymentsAsync(DateTime start, CancellationToken cancellationToken)
        {
            Configuration.RegisterConfiguration(GatewayUrl.Production, new Authentication {
                ApiLogin       = Config.ReadAttribute("Billing", "PaymentImport", "Sources", "AuthorizeNet", "ApiLogin"),
                TransactionKey = Config.ReadAttribute("Billing", "PaymentImport", "Sources", "AuthorizeNet", "TransactionKey"),
            });

            var details = await Task.WhenAll(
                (await GetBatchIdsAsync(start, DateTime.Now, cancellationToken))
                .Select(b => BatchTransactionsRequest.GetAsync(b, cancellationToken))
                .Select(async ts => (await ts).Select(t => TransactionDetailRequest.GetAsync(t.TransactionID, cancellationToken))));

            return((await Task.WhenAll(details.Select(Task.WhenAll)))
                   .SelectMany(a => a)
                   .Select(t => new PaymentInfo {
                Address = t.BillingAddress?.Street,
                Amount = t.Status == "voided" || t.Status == "declined" ? 0 : t.AuthorizedAmount,
                CardIssuer = (t.Payment?[0] as CreditCard)?.CardType,
                City = t.BillingAddress?.City,
                Company = t.BillingAddress?.Company,
                Country = t.BillingAddress?.Country,
                Date = t.SubmittedLocal,
                Email = t.Customer?.EMail,
                FinalFour = (t.Payment?[0] as CreditCard)?.CardNumber?.Trim('X'),
                FirstName = t.BillingAddress?.FirstName,
                Id = t.TransactionID.ToString(),
                LastName = t.BillingAddress?.LastName,
                Phone = t.BillingAddress?.PhoneNumber,
                State = t.BillingAddress?.State,
                Zip = t.BillingAddress?.ZipCode
            }));
        }
        public ActionResult Index(TransactionDetailRequest request)
        {
            var result = this.ImsService.GetTransactionDetailList(request);

            ViewBag.PaypalApi = new SelectList(this.ImsService.GetPaypalApiList(), "ID", "PPAccount");
            var expressAgent = EnumHelper.GetItemValueList <ExpressAgentEnum>();

            this.ViewBag.agent = new SelectList(expressAgent, "Key", "Value");
            return(View(result));
        }
Exemplo n.º 3
0
        //int total{ get; set; }
        /// <summary>
        /// 处理长运行动作/Processes the long running action.
        /// </summary>
        /// <param name="id">动作id/The id.</param>        ///
        public string ProcessLongRunningAction(string id, int PaypalApi, string RangeDate)
        {
            PaypalApi paypalApi = this.ImsService.GetPaypalApi(PaypalApi);

            this.ImsService.PayPalHelper(paypalApi);

            string dataRange = RangeDate;

            string[] date = dataRange.Split(new char[] { '-' });

            DateTime startDate = DateTime.Parse(date[0].Trim());
            DateTime endDate   = DateTime.Parse(date[1].Trim());

            IEnumerable <PaymentTransactionSearchResultType> PaypalTransactionSearch = this.ImsService.ApiTransactionSearch(startDate, endDate);
            var total = PaypalTransactionSearch.Count <PaymentTransactionSearchResultType>();


            int i = 0;

            foreach (var item in PaypalTransactionSearch)
            {
                GetTransactionDetailsResponseType PaypalTransactionDetails = this.ImsService.ApiTransactionDetail(item);
                if (PaypalTransactionDetails.Ack.Equals(AckCodeType.SUCCESS))
                {
                    i++;
                    int d = Precentage(i, total);

                    lock (syncRoot)
                    {
                        ProcessStatus[id] = d;
                    }
                    TransactionDetailRequest request = new TransactionDetailRequest
                    {
                        TransactionID = item.TransactionID
                    };
                    if (this.ImsService.GetTransactionDetailList(request).Count() == 0)
                    {
                        var detail = this.ImsService.TransactionDetail(PaypalTransactionDetails);
                        using (var dbContext = new ImsDbContext())
                        {
                            dbContext.Insert <TransactionDetail>(detail);
                        }
                    }
                }
            }

            return(id);
        }
Exemplo n.º 4
0
        //
        // GET: /Ims/TransactionDetail/
        public ActionResult Index(TransactionDetailRequest request)
        {
            var result = this.ImsService.GetTransactionDetailList(request);

            ViewBag.PaypalApi = new SelectList(this.ImsService.GetPaypalApiList(), "ID", "PPAccount");
            var expressAgent = EnumHelper.GetItemValueList <ExpressAgentEnum>();

            this.ViewBag.agent = new SelectList(expressAgent, "Key", "Value");

            /* List<int> aa=new List<int>();
             * aa.Add(57);
             * aa.Add(58);
             * aa.Add(59);
             * this.ImsService.DeletePaymentTransaction(aa);*/
            //ViewBag.Agent = new SelectList(, "ID", "PPAccount");
            //var aa = this.ImsService.GetPaymentTransaction(25);
            //Response.Write(aa.PaymentInfo.FeeAmount.value+"aa");
            return(View(result));
        }
        public ActionResult AjaxOrders(TransactionDetailRequest request)
        {
            // request.PaymentStatus = "COMPLETED";

            var alltransactions = this.ImsService.GetTransactionDetailList(null);
            IEnumerable <TransactionDetail> filterTransactions;

            if (!string.IsNullOrEmpty(request.sSearch))
            {
                //Used if particulare columns are filtered
                var receiverEmailFilter     = Convert.ToString(Request["sSearch_1"]);
                var orderTimeFilter         = Convert.ToString(Request["sSearch_2"]);
                var shipToCountryNameFilter = Convert.ToString(Request["sSearch_3"]);
                var buyerIDFilter           = Convert.ToString(Request["sSearch_4"]);
                var transactionIDFilter     = Convert.ToString(Request["sSearch_5"]);
                var trackingNumberFilter    = Convert.ToString(Request["sSearch_6"]);
                var agentNameFilter         = Convert.ToString(Request["sSearch_7"]);
                var shippingServiceFilter   = Convert.ToString(Request["sSearch_8"]);
                //var orderStatusFilter = Convert.ToString(Request["sSearch_8"]);
                //var shippingFeeFilter = Convert.ToString(Request["sSearch_9"]);


                //Optionally check whether the columns are searchable at all
                var isReceiverEmailSearchable = Convert.ToBoolean(Request["bSearchable_1"]);
                //var isOrderTimeable = Convert.ToBoolean(Request["bSearchable_2"]);
                var isShipToCountryNameSearchable = Convert.ToBoolean(Request["bSearchable_3"]);
                var isBuyerIDSearchable           = Convert.ToBoolean(Request["bSearchable_4"]);
                var isTransactionIDSearchable     = Convert.ToBoolean(Request["bSearchable_5"]);
                var isTrackingNumberSearchable    = Convert.ToBoolean(Request["bSearchable_6"]);
                var isAgentNameSearchable         = Convert.ToBoolean(Request["bSearchable_7"]);
                var isShippingServiceSearchable   = Convert.ToBoolean(Request["bSearchable_8"]);
                //var isOrderStatusSearchable = Convert.ToBoolean(Request["bSearchable_8"]);
                // var isShippingFeeSearchable = Convert.ToBoolean(Request["bSearchable_9"]);

                filterTransactions = alltransactions.Where(c => isReceiverEmailSearchable && c.ReceiverEmail.ToLower().Contains(request.sSearch.ToLower())
                                                           //|| isOrderTimeable && c.OrderTime.ToString().ToLower().Contains(request.sSearch.ToLower())
                                                           || isShipToCountryNameSearchable && c.ShipToCountryName.ToLower().Contains(request.sSearch.ToLower()) ||
                                                           isBuyerIDSearchable && c.BuyerID.ToLower().Contains(request.sSearch.ToLower()) ||
                                                           isTransactionIDSearchable && c.TransactionID.ToLower().Contains(request.sSearch.ToLower()) ||
                                                           isTrackingNumberSearchable && c.TrackingNumber.ToLower().Contains(request.sSearch.ToLower())
                                                           //|| isAgentNameSearchable && c.Agent.AgentName.ToLower().Contains(request.sSearch.ToLower())
                                                           //  || isShippingServiceSearchable && c.ShippingName.ToLower().Contains(request.sSearch.ToLower())
                                                           //|| isOrderStatusSearchable && c.OrderStatus.ToLower().Contains(request.sSearch.ToLower())
                                                           //|| isShippingFeeSearchable && SqlFunctions.StringConvert(c.ActualShipAmount).Contains(request.sSearch.ToLower())
                                                           ).ToList();
            }
            else if (request.sAction == "filter")
            {
                var transactionIDFilter     = Convert.ToString(Request["transaction_id"]).ToLower();
                var buyerIDFilter           = Convert.ToString(Request["buyer_id"]).ToLower();
                var shiptocountrycodeFilter = Convert.ToString(Request["shiptocountrycode"]).ToLower().Trim();
                var ordertimerangeFilter    = Convert.ToString(Request["ordertimerange"]).ToString();

                var isTransactionIDSearchable     = string.IsNullOrEmpty(Request["transaction_id"].ToString()) ? false : true;
                var isBuyerIDSearchable           = string.IsNullOrEmpty(Request["buyer_id"].ToString()) ? false : true;
                var isShipToCountryCodeSearchable = string.IsNullOrEmpty(Request["shiptocountrycode"]) ? false : true;
                var isOrderTimeRangeSearchable    = string.IsNullOrEmpty(Request["ordertimerange"]) ? false : true;
                var isOrderPriceSearchable        = string.IsNullOrEmpty(Request["order_base_price_from"]) && string.IsNullOrEmpty(Request["order_base_price_to"]) ? false : true;

                filterTransactions = this.ImsService.GetTransactionDetailList(null).Where(i => i.ShipToCountryCode != null);
                if (isTransactionIDSearchable)
                {
                    filterTransactions = filterTransactions.Where(c => c.TransactionID.ToLower().Contains(transactionIDFilter));
                }
                if (isBuyerIDSearchable)
                {
                    filterTransactions = filterTransactions.Where(c => c.BuyerID.ToLower().Contains(buyerIDFilter));
                }
                if (isShipToCountryCodeSearchable)
                {
                    filterTransactions = filterTransactions.Where(c => c.ShipToCountryCode.ToLower().Contains(shiptocountrycodeFilter));
                }
                if (isOrderTimeRangeSearchable)
                {
                    string   dataRange = ordertimerangeFilter;
                    string[] date      = dataRange.Split(new char[] { '-' });

                    DateTime startDate = DateTime.Parse(date[0].Trim());
                    DateTime endDate   = DateTime.Parse(date[1].Trim());
                    filterTransactions = filterTransactions.Where(c => c.OrderTime >= startDate).Where(c => c.OrderTime <= endDate);
                }
                if (isOrderPriceSearchable)
                {
                    filterTransactions = filterTransactions.Where(c => c.Amt >= decimal.Parse(Request["order_base_price_from"].ToString())).Where(c => c.Amt <= decimal.Parse(Request["order_base_price_to"].ToString()));
                }
            }
            else if (request.sAction == "filter_cancel")
            {
                filterTransactions = alltransactions;
            }
            else
            {
                filterTransactions = alltransactions;
            }

            var isOrderTimeSortable         = Convert.ToBoolean(Request["bSortable_1"]);
            var isTransactionIDSortable     = Convert.ToBoolean(Request["bSortable_2"]);
            var isBuyerIDSortable           = Convert.ToBoolean(Request["bSortable_3"]);
            var isShipToCountryCodeSortable = Convert.ToBoolean(Request["bSortable_4"]);
            var isPriceSortable             = Convert.ToBoolean(Request["bSortable_5"]);
            var isTrackingNumberSortable    = Convert.ToBoolean(Request["bSortable_6"]);
            var isAgentNameSortable         = Convert.ToBoolean(Request["bSortable_7"]);
            var isShippingServiceSortable   = Convert.ToBoolean(Request["bSortable_8"]);
            // var isOrderStatusSortable = Convert.ToBoolean(Request["bSortable_8"]);
            //var isShippingFeeSortable = Convert.ToBoolean(Request["bSortable_9"]);
            var sortColumnIndex = Convert.ToInt32(Request["iSortCol_0"]);

            Func <TransactionDetail, string> orderingFunction = (c =>
                                                                 sortColumnIndex == 1 && isOrderTimeSortable ? c.OrderTime.ToString() :
                                                                 sortColumnIndex == 2 && isTransactionIDSortable ? c.TransactionID :
                                                                 sortColumnIndex == 3 && isBuyerIDSortable ? c.BuyerID :
                                                                 sortColumnIndex == 4 && isShipToCountryCodeSortable ? c.ShipToCountryCode :
                                                                 sortColumnIndex == 5 && isPriceSortable ? c.Amt.ToString() :
                                                                 //sortColumnIndex == 5 && isTrackingNumberSortable ? c.TrackingNumber :
                                                                 // sortColumnIndex == 6 && isAgentNameSortable ? (c.Agent == null ? "" : c.Agent.AgentName) :
                                                                 //  sortColumnIndex == 7 && isShippingServiceSortable ? c.ShippingName :
                                                                 //sortColumnIndex == 8 && isOrderStatusSortable ? c.OrderStatus :
                                                                 //sortColumnIndex == 9 && isShippingFeeSortable ? c.ActualShipAmount.ToString() :
                                                                 "");

            filterTransactions = filterTransactions.OrderByDescending(i => i.OrderTime);
            var sortDirection = Request["sSortDir_0"]; // asc or desc

            if (sortDirection == "asc")
            {
                filterTransactions = filterTransactions.OrderBy(orderingFunction);
            }

            if (sortDirection == "desc")
            {
                filterTransactions = filterTransactions.OrderByDescending(orderingFunction);
            }

            var displayedTransaction = filterTransactions.Skip(request.iDisplayStart).Take(request.iDisplayLength);

            var result = from c in displayedTransaction
                         select new[] {
                Convert.ToString(c.ID)
                , c.OrderTime.ToString(@"yyyy-MM-dd")
                , c.TransactionID
                , c.BuyerID
                , c.ShipToCountryCode
                , c.Amt.ToString()
                , c.Agent.ToString()
                , c.Express                            //c.AgentPostage.ToString("#0.00")//"<span class=\"label label-sm label-danger\">On Hold</span>"
                //, "<a href=\"ecommerce_orders_view.html\" class=\"btn btn-xs default btn-editable\"><i class=\"fa fa-search\"></i> View</a>"
                , Convert.ToString(c.ID)
            };

            return(Json(new
            {
                sEcho = request.sEcho,                   //param.sEcho,
                iTotalRecords = alltransactions.Count(), //alltransactions.Count(),
                iTotalDisplayRecords = filterTransactions.Count(),
                aaData = result
            },
                        JsonRequestBehavior.AllowGet));
        }
Exemplo n.º 6
0
 /// <summary>
 /// Get detailed information about user's single transaction
 /// </summary>
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='getTransationDetailRequest'>
 /// Data for transation detail Request
 /// </param>
 /// <param name='cancellationToken'>
 /// The cancellation token.
 /// </param>
 public static async Task <object> GetTransactionDetailAsync(this IPolishAPI operations, TransactionDetailRequest getTransationDetailRequest, CancellationToken cancellationToken = default(CancellationToken))
 {
     using (var _result = await operations.GetTransactionDetailWithHttpMessagesAsync(getTransationDetailRequest, null, cancellationToken).ConfigureAwait(false))
     {
         return(_result.Body);
     }
 }
Exemplo n.º 7
0
 /// <summary>
 /// Get detailed information about user's single transaction
 /// </summary>
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='getTransationDetailRequest'>
 /// Data for transation detail Request
 /// </param>
 public static object GetTransactionDetail(this IPolishAPI operations, TransactionDetailRequest getTransationDetailRequest)
 {
     return(operations.GetTransactionDetailAsync(getTransationDetailRequest).GetAwaiter().GetResult());
 }