コード例 #1
0
        public async Task <IActionResult> SyncOrderPayments()
        {
            var errorList = new List <string>();

            try
            {
                if (_db.Connection.State == System.Data.ConnectionState.Closed)
                {
                    await _db.Connection.OpenAsync();
                }

                var query  = new OrderQueries(_db);
                var orders = await query.GetAllOrderPayments();

                foreach (var order in orders)
                {
                    try
                    {
                        var found = _context.OrderPayment.FirstOrDefault(o => o.OrderId == int.Parse(order._pos_payment_order_id.ToString()) &&
                                                                         o.PaymentAmount == decimal.Parse(order._pos_payment_amount.ToString()) &&
                                                                         o.AuthCode == order._pos_payment_AuthCode.ToString());
                        if (found == null)
                        {
                            var newOrder = new OrderPayment
                            {
                                CreatedByUserId = order.post_author.ToString(),
                                CreatedDate     = order.post_date,
                                CreditCard      = order._pos_payment_lastFour,
                                OrderId         = int.Parse(order._pos_payment_order_id.ToString()),
                                PaymentAmount   = decimal.Parse(order._pos_payment_amount),
                                PaymentDate     = order.post_date,
                                PaymentTypeId   = int.Parse(order._pos_payment_paymentType_id.ToString()),
                                AuthCode        = order._pos_payment_AuthCode,
                                Notes           = order._pos_payment_comment,
                                ChequeNo        = order._pos_payment_chequeNo
                            };
                            newOrder.PaymentType = null;
                            await _context.OrderPayment.AddAsync(newOrder);

                            await _context.SaveChangesAsync();
                        }
                        else
                        {
                            // await _context.SaveChangesAsync();
                        }
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine(ex.ToString());
                    }
                }
                _db.Connection.Close();
            }
            catch (Exception ex)
            {
                errorList.Add("order taxes:" + ex.ToString());
            }

            return(Ok(errorList));
        }