Example #1
0
        private void NotifyFailed(OPC_Sale saleOrder, SaleOrderNotificationStatus create, IEnumerable <string> errorList)
        {
            using (var db = new YintaiHZhouContext())
            {
                using (var scope = new TransactionScope())
                {
                    db.OPC_SaleOrderNotificationLog.Add(new OPC_SaleOrderNotificationLog
                    {
                        CreateDate  = DateTime.Now,
                        CreateUser  = JobUserId,
                        SaleOrderNo = saleOrder.SaleOrderNo,
                        Status      = (int)create,
                        Message     = string.Join(";", errorList)
                    });

                    var trade = db.OPC_Sale.FirstOrDefault(x => x.SaleOrderNo == saleOrder.SaleOrderNo);
                    if (trade != null)
                    {
                        trade.CashStatus      = (int)EnumCashStatus.CashingFailed;
                        trade.CashDate        = DateTime.Now;
                        trade.UpdatedDate     = DateTime.Now;
                        trade.UpdatedUser     = JobUserId;
                        db.Entry(trade).State = EntityState.Modified;
                    }
                    db.SaveChanges();
                    scope.Complete();
                }
            }
        }
Example #2
0
        private void SaleOrderNotified(OPC_Sale saleOrder, SaleOrderNotificationStatus status)
        {
            using (var scope = new TransactionScope())
            {
                using (var db = new YintaiHZhouContext())
                {
                    var order = db.OPC_Sale.FirstOrDefault(x => x.Id == saleOrder.Id);
                    if (order == null)
                    {
                        Logger.Error(string.Format("Invalid order ({0})", saleOrder.OrderNo));
                        return;
                    }

                    if (order.Status != (int)EnumSaleOrderStatus.NotifyProduct && order.Status != (int)EnumSaleOrderStatus.None)
                    {
                        Logger.Error(string.Format("Invalid order status ({0})", saleOrder.OrderNo));
                        return;
                    }

                    if (order.Status == (int)EnumSaleOrderStatus.None)
                    {
                        order.Status          = (int)EnumSaleOrderStatus.NotifyProduct;
                        order.UpdatedDate     = DateTime.Now;
                        order.UpdatedUser     = JobUserId;
                        db.Entry(order).State = EntityState.Modified;
                    }

                    db.OPC_SaleOrderNotificationLog.Add(new OPC_SaleOrderNotificationLog
                    {
                        CreateDate  = DateTime.Now,
                        CreateUser  = JobUserId,
                        SaleOrderNo = saleOrder.SaleOrderNo,
                        Status      = (int)status,
                        Message     = string.Empty,
                    });
                    db.SaveChanges();
                    scope.Complete();
                }
            }
        }
Example #3
0
        private void DoQuery(Action <IQueryable <OPC_Sale> > callback, int orderStatus, SaleOrderNotificationStatus status)
        {
            using (var context = new YintaiHZhouContext())
            {
                var linq =
                    context.OPC_Sale.Where(
                        t => t.Status == orderStatus &&
                        !context.OPC_SaleOrderNotificationLog.Any(
                            x =>
                            x.SaleOrderNo == t.SaleOrderNo && (
                                x.Status == (int)status ||
                                x.Status == (int)SaleOrderNotificationStatus.CreateFailed ||
                                x.Status == (int)SaleOrderNotificationStatus.PaidFailed ||
                                x.Status == (int)SaleOrderNotificationStatus.ExceptionThrow))
                        );

                if (callback != null)
                {
                    callback(linq);
                }
            }
        }