Ejemplo n.º 1
0
 public void verify()
 {
     if (this.Name.isNullOrEmpty())
     {
         BizException.throwError("user name is invaliable .");
     }
 }
Ejemplo n.º 2
0
        /// <summary>
        ///处理业务异常
        /// </summary>
        /// <param name="context"></param>
        /// <param name="ex"></param>
        /// <returns></returns>
        private async Task HandleBizExceptionAsync(HttpContext context, BizException ex)
        {
            var data = new SpeciResult {
                code = Enums.OperationStatus.Fail.GetHashCode(), msg = ex.Message
            };

            await ResponseInfo(context, data);
        }
        public void store(Order order)
        {
            OrderEntity entity = toEntity(order);

            if (0 >= records.store(entity))
            {
                BizException.throwError("fail to store specify order .");
            }
        }
        public void store(User user)
        {
            UserEntity entity = toEntity(user);

            if (0 >= records.store(entity))
            {
                BizException.throwError("fail to store specify user .");
            }
        }
        public User lookup(UserName name)
        {
            UserEntity entity = records.lookup(name.Name);

            if (entity.isNull())
            {
                BizException.throwError("specify user name no found .");
            }
            return(toModel(entity));
        }
Ejemplo n.º 6
0
        private void InitErrorTable(BizException ex, DataTable errorTable)
        {
            if (!errorTable.Columns.Contains("ErrorMessage"))
            {
                errorTable.Columns.Add("ErrorMessage");
            }
            DataRow row = errorTable.NewRow();

            row["ErrorMessage"] = ex.Message;
            errorTable.Rows.Add(row);
        }
Ejemplo n.º 7
0
        /// <summary>
        /// 执行批量操作
        /// </summary>
        /// <typeparam name="T">批量操作项类型</typeparam>
        /// <param name="request">执行批量操作请求数据列表</param>
        /// <param name="doAction">需要对每个数据项执行的操作</param>
        /// <returns>批量操作结果</returns>
        internal static BatchActionResult <T> DoBatchAction <T>(List <BatchActionItem <T> > request, Action <T> doAction)
        {
            if (request == null || request.Count == 0)
            {
                return(new BatchActionResult <T>(0));
            }
            BizException unknowException = new BizException(ResouceManager.GetMessageString("SO.SOInfo", "SO_Action_Unknow"));
            var          result          = new BatchActionResult <T>(request.Count);
            string       cultureName     = Thread.CurrentThread.CurrentCulture.Name;
            List <Task>  tasks           = new List <Task>();
            //取得主线程的ServiceContext
            var currentContext = ServiceContext.Current;

            for (int i = 0; i < request.Count; i++)
            {
                int index = i;
                var task  = Task.Factory.StartNew((c) =>
                {
                    try
                    {
                        //Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo(cultureName);
                        //将主线程的ServiceContext附加到当前的ServiceContext
                        ServiceContext.Current.Attach((IContext)c);

                        doAction(request[index].Data);
                        result.SuccessList.Add(request[index]);
                    }
                    catch (BizException exp)
                    {
                        result.FaultList.Add(new FaultTask <BatchActionItem <T> >(request[index], exp));
                    }
                    catch (Exception ex)
                    {
                        ExceptionHelper.HandleException(ex);
                        result.FaultList.Add(new FaultTask <BatchActionItem <T> >(request[index], unknowException));
                    }
                }, currentContext);
                tasks.Add(task);
            }
            //阻塞,直到所有任务完成
            Task.WaitAll(tasks.ToArray());

            return(result);
        }
        public void HighPrintProc(int orderId, int addPrice, string procType)
        {
            DateTime now           = DateTime.Now;
            var      orderItem     = OrderDao.FindById(orderId);
            var      payInfo       = PayInfoDao.FindById(orderItem.PayInfoId);
            string   firstItemType = string.Empty;
            string   newOrderCode  = string.Empty;
            int      firstItemId   = 0;

            foreach (var item in PrintMadeOrderDao.FindByOrderId(orderItem.Id))
            {
                firstItemType = "PRINTMADE";
                firstItemId   = item.Id;
                break;
            }
            foreach (var item in ReadyMadeOrderDao.FindByOrderId(orderItem.Id))
            {
                firstItemType = "READMADE";
                firstItemId   = item.Id;
                break;
            }
            if ("ADDPRICE".Equals(procType))
            {
                if (payInfo.PayType.StartsWith("TELEGRAM") || (orderItem.IsPaid() && !payInfo.PayType.Equals("MAN")))
                {
                    throw BizException.CreateMakumakuServiceException("관리자 우선출력 오류", "PG사 결제나 입금완료주문의 경우\n금액 추가타입의 우선출력 요청은 할 수 없습니다.");
                }

                if ("PRINTMADE".Equals(firstItemType))
                {
                    var madeItem = PrintMadeOrderDao.FindById(firstItemId);
                    int orgPrice = madeItem.TaxAddedTotalPrice;
                    madeItem.ExtraPrice = addPrice;
                    PrintMadeOrderDao.Update(madeItem);
                    DeliveryInfoItem DeliveryInfoItem = DeliveryInfoDao.FindById(orderItem.DeliveryInfoId);
                    PayInfoService.UpdateChangeProductCharge(orderItem.PayInfoId, "MINUS", orgPrice, DeliveryInfoItem);
                    PayInfoService.UpdateChangeProductCharge(orderItem.PayInfoId, "PLUS", madeItem.TaxAddedTotalPrice, DeliveryInfoItem);
                }
                else if ("READYMADE".Equals(firstItemType))
                {
                    var madeItem = ReadyMadeOrderDao.FindById(firstItemId);
                    int orgPrice = madeItem.TaxAddedTotalPrice;
                    madeItem.ExtraPrice = addPrice;
                    ReadyMadeOrderDao.Update(madeItem);
                    DeliveryInfoItem DeliveryInfoItem = DeliveryInfoDao.FindById(orderItem.DeliveryInfoId);
                    PayInfoService.UpdateChangeProductCharge(orderItem.PayInfoId, "MINUS", orgPrice, DeliveryInfoItem);
                    PayInfoService.UpdateChangeProductCharge(orderItem.PayInfoId, "PLUS", madeItem.TaxAddedTotalPrice, DeliveryInfoItem);
                }
            }
            else if ("NEWGOODS".Equals(procType))
            {
                var newItemDoc = XMLUtil.CreateDocment();
                XMLUtil.SetValue(newItemDoc, "HIGHPRINT", orderItem.Code, "PARENTCODE");

                var newItem = new OrderItem();
                newItem.UserId      = orderItem.UserId;
                newItem.OrderDate   = now;
                newItem.OrderStatus = "DESIGN_INFO";
                newItem.PayStatus   = "UNPAID";
                newItem.HighPrintId = orderItem.Id;
                newItem.Content     = newItemDoc;
                var newOrderId = OrderDao.Insert(newItem);
                OrderDao.UpdateOrderStatus(newOrderId, "DESIGN_INFO");
                newItem      = OrderDao.FindById(newOrderId);
                newOrderCode = newItem.Code;
                var rdItem = new ReadyMadeOrderItem();
                rdItem.ReadyMadeId = "R199";
                rdItem.Title       = orderItem.Code + "追加/商品金額";
                rdItem.OrderId     = newItem.Id;
                rdItem.Code        = newItem.Code + "-S01";
                rdItem.OrderCode   = newItem.Code;
                rdItem.OrderCount  = 1;
                rdItem.TotalPrice  = 0;
                rdItem.GoodsPrice  = addPrice;

                ReadyMadeOrderDao.Insert(rdItem);
            }

            PrintMadeOrderDao.ChangePrintPriorityByOrderCode(orderItem.Code, "HIGH");

            DbParam param = new DbParam();
            var     doc   = XMLUtil.CreateDocment();

            XMLUtil.SetValue(doc, "PARENTHIGHPRINT", procType, "PROCTYPE");
            XMLUtil.SetValue(doc, "PARENTHIGHPRINT", addPrice, "ADDPRICE");
            if ("NEWGOODS".Equals(procType))
            {
                XMLUtil.SetValue(doc, "PARENTHIGHPRINT", newOrderCode, "NEWORDERCODE");
            }
            param.Add("content", doc);
            OrderDao.Update(param, orderItem.Id);
        }