public QueryCancelOrderWarningsResponse QueryCancelOrderWarnings(QueryCancelOrderWarningsRequest request) { Platform.CheckForNullReference(request, "request"); Platform.CheckMemberIsSet(request.OrderRef, "OrderRef"); var order = this.PersistenceContext.Load <Order>(request.OrderRef); var warnings = new List <string>(); var errors = new List <string>(); if (order.IsTerminated) { errors.Add("This order cannot be cancelled because it has already been completed or otherwise terminated."); return(new QueryCancelOrderWarningsResponse(warnings, errors)); } var hasActiveReportingSteps = CollectionUtils.Contains( order.Procedures, p => CollectionUtils.Contains(p.ReportingProcedureSteps, ps => !ps.IsTerminated)); if (hasActiveReportingSteps) { warnings.Add("This order has been performed and may have reports in progress."); } return(new QueryCancelOrderWarningsResponse(warnings, errors)); }
public QueryCancelOrderWarningsResponse QueryCancelOrderWarnings(QueryCancelOrderWarningsRequest request) { Platform.CheckForNullReference(request, "request"); Platform.CheckMemberIsSet(request.OrderRef, "OrderRef"); var order = this.PersistenceContext.Load <Order>(request.OrderRef); var warnings = new List <string>(); var errors = new List <string>(); if (order.IsTerminated) { errors.Add(SR.CancelOrderWarning_OrderAlreadyTerminated); return(new QueryCancelOrderWarningsResponse(warnings, errors)); } var hasActiveReportingSteps = CollectionUtils.Contains( order.Procedures, p => CollectionUtils.Contains(p.ReportingProcedureSteps, ps => !ps.IsTerminated)); if (hasActiveReportingSteps) { warnings.Add(SR.CancelOrderWarning_OrderPerformedMayHaveInProgressReports); } return(new QueryCancelOrderWarningsResponse(warnings, errors)); }