public MergeOrderResponse MergeOrder(MergeOrderRequest request) { Platform.CheckForNullReference(request, "request"); Platform.CheckMemberIsSet(request.SourceOrderRefs, "SourceOrderRefs"); Platform.CheckTrue(request.SourceOrderRefs.Count > 0, "SourceOrderRefs.Count > 0"); Platform.CheckMemberIsSet(request.DestinationOrderRef, "DestinationOrderRef"); var response = new MergeOrderResponse(); DryRunHelper(request.DryRun, delegate { var destinationOrder = this.PersistenceContext.Load <Order>(request.DestinationOrderRef); var sourceOrders = CollectionUtils.Map(request.SourceOrderRefs, (EntityRef r) => PersistenceContext.Load <Order>(r)); var mergeInfo = new OrderMergeInfo(this.CurrentUserStaff, Platform.Time, destinationOrder); MergeOrderHelper(destinationOrder, sourceOrders, mergeInfo, request.ValidationOnly); if (request.DryRun) { var orderAssembler = new OrderAssembler(); var orderDetail = orderAssembler.CreateOrderDetail(destinationOrder, OrderAssembler.CreateOrderDetailOptions.GetVerboseOptions(), PersistenceContext); response.DryRunMergedOrder = orderDetail; } }); return(response); }
public bool OrderMerge(string OrderIDFrom, string OrderIDTo, ref string msg) { try { MergeOrderRequest paraBody = new MergeOrderRequest(); paraBody.OrderIDFrom = OrderIDFrom; paraBody.OrderIDTo = OrderIDTo; NSLog.Logger.Info("OrderMerge Request", paraBody); var result = (NSApiResponse)ApiResponse.Post <NSApiResponse>(Commons.CRMCustomerOrderMerge, null, paraBody); NSLog.Logger.Info("OrderMerge Response", result); if (result != null) { if (result.Success) { return(true); } else { msg = result.Message; NSLog.Logger.Info("OrderMerge", result.Message); return(false); } } else { NSLog.Logger.Info("OrderMerge", result); return(false); } } catch (Exception e) { NSLog.Logger.Error("OrderMerge_Fail", e); return(false); } }
private static bool ValidateMergeRequest(IList <EntityRef> orderRefs, out string failureReason) { var destinationOrderRef = orderRefs[0]; var sourceOrderRefs = new List <EntityRef>(orderRefs); sourceOrderRefs.Remove(destinationOrderRef); try { Platform.GetService( delegate(IOrderEntryService service) { var request = new MergeOrderRequest(sourceOrderRefs, destinationOrderRef) { ValidationOnly = true }; service.MergeOrder(request); }); failureReason = null; return(true); } catch (RequestValidationException e) { failureReason = e.Message; return(false); } }
public void Accept() { try { var destAccNumber = _selectedOrder.AccessionNumber; var sourceAccNumbers = CollectionUtils.Map(_ordersTable.Items, (OrderDetail o) => o.AccessionNumber); sourceAccNumbers.Remove(destAccNumber); var message = string.Format(SR.MessageMergeOrderConfirmation, StringUtilities.Combine(sourceAccNumbers, ","), destAccNumber); if (DialogBoxAction.No == this.Host.DesktopWindow.ShowMessageBox(message, MessageBoxActions.YesNo)) { return; } var destinationOrderRef = _selectedOrder.OrderRef; var sourceOrderRefs = new List <EntityRef>(_orderRefs); sourceOrderRefs.Remove(_selectedOrder.OrderRef); Platform.GetService( delegate(IOrderEntryService service) { var request = new MergeOrderRequest(sourceOrderRefs, destinationOrderRef) { DryRun = false }; service.MergeOrder(request); }); this.Exit(ApplicationComponentExitCode.Accepted); } catch (Exception e) { ExceptionHandler.Report(e, SR.ExceptionMergeOrdersTool, this.Host.DesktopWindow, () => this.Exit(ApplicationComponentExitCode.Error)); } }
private void MergeOrderDryRun(out OrderDetail mergedOrder, out string failureReason) { if (_selectedOrder == null) { failureReason = null; mergedOrder = null; return; } var destinationOrderRef = _selectedOrder.OrderRef; var sourceOrderRefs = new List <EntityRef>(_orderRefs); sourceOrderRefs.Remove(_selectedOrder.OrderRef); try { MergeOrderResponse response = null; Platform.GetService( delegate(IOrderEntryService service) { var request = new MergeOrderRequest(sourceOrderRefs, destinationOrderRef) { DryRun = true }; response = service.MergeOrder(request); }); mergedOrder = response.DryRunMergedOrder; failureReason = null; } catch (RequestValidationException e) { failureReason = e.Message; mergedOrder = null; } }