public void ExportBillDemand(ApiCommandArgument arg) { AuthenticationService.Authenticate(arg.SecurityToken); if (!AuthenticationService.IsAuthenticated()) { return; } if (!AuthorizationService.IsAllowedToExecuteCommand(arg.InstanceId, WorkflowCommandType.Export)) { return; } FireCommandWithWaiting(arg, delegate(ApiCommandArgument arg1) { using (var sync = GetWorkflowSync(arg1)) { WorkflowInitService.RaiseExport(arg1.InstanceId); sync.WaitHandle.WaitOne(60000); } }); var state = WorkflowStateService.GetCurrentState(arg.InstanceId); if (state == WorkflowState.BillDemandInAccountingWithExport) { var errorMessage = WorkflowParcelService.GetAndRemoveMessage(arg.InstanceId); throw new FaultException <BaseFault>(new BaseFault((int)ErrorCodes.BillDemandUploadError), new FaultReason(string.IsNullOrEmpty(errorMessage) ? "Не удалось выгрузить расходный документ. Попробуйте провести данную операцию еще раз. Если сообщение будет повторятся, обратитесь к Администратору." : errorMessage)); } }
private void RaiseExportBillDemand(MultipleExportBillDemandState multipleExportBillDemandState) { FireCommandWithWaiting(multipleExportBillDemandState.InstanceId, delegate(Guid arg1) { using ( var sync = GetWorkflowSync( arg1)) { WorkflowInitService. RaiseExport(arg1, multipleExportBillDemandState.Identity); sync.WaitHandle.WaitOne (60000); } }, arg2 => arg2); }