public void verify() { if (this.Name.isNullOrEmpty()) { BizException.throwError("user name is invaliable ."); } }
/// <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)); }
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); }
/// <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); }