Пример #1
0
        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));
            }
        }
Пример #2
0
 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);
 }