public virtual ReturnInfo <WorkflowBasicInfo> Apply(FlowInitInfo <FormT> flowInit) { return(Execute(flowInit, () => { return WorkflowInitService.Apply(flowInit); })); }
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)); } }
public void SetPaidStatus(BillDemandPaidApiCommandArgument arg) { AuthenticationService.Authenticate(arg.SecurityToken); if (!AuthenticationService.IsAuthenticated()) { return; } if (!AuthorizationService.IsAllowedToExecuteCommand(arg.InstanceId, WorkflowCommandType.SetPaidStatus)) { return; } FireCommandWithWaiting(arg, delegate(BillDemandPaidApiCommandArgument arg1) { using (var sync = GetWorkflowSync(arg1)) { WorkflowInitService.RaiseSetPaidStatus(arg1.InstanceId, arg1.PaymentDate, arg1.DocumentNumber); sync.WaitHandle.WaitOne(4000); } }); }
public void StartProcessing(ApiCommandArgument arg) { AuthenticationService.Authenticate(arg.SecurityToken); if (!AuthenticationService.IsAuthenticated()) { return; } if (!AuthorizationService.IsAllowedToExecuteCommand(arg.InstanceId, WorkflowCommandType.StartProcessing)) { return; } WorkflowInitService.CreateWorkflowIfNotExists(arg.InstanceId); using (var sync = GetWorkflowSync(arg)) { sync.WaitHandle.WaitOne(4000); } FireCommandWithWaiting(arg, delegate(ApiCommandArgument arg1) { using (var sync = GetWorkflowSync(arg1)) { WorkflowInitService.RaiseStartProcessing(arg1.InstanceId); sync.WaitHandle.WaitOne(4000); } }); }
public virtual ReturnInfo <WorkflowBasicInfo> Apply(FlowInitInfo <FormT> flowInit) { var comData = HttpContext.CreateCommonUseData(ComDataFactory, functionCodes: FunCodeDefine.APPLY); return(Execute(flowInit, () => { return WorkflowInitService.Apply(flowInit, comData); })); }
public void SetWorkflowState(SetStateApiCommandArgument arg) { if (CheckNotAllowToSetState(arg)) { return; } WorkflowInitService.SetWorkflowState(arg.InstanceId, arg.StateNameToSet, arg.Comment); }
private void RaiseSetStateAction(MultipleExportState multipleExportState) { FireCommandWithWaiting(multipleExportState.InstanceId, delegate(Guid arg1) { using (var sync = GetWorkflowSync(arg1)) { WorkflowInitService.SetWorkflowState(arg1, multipleExportState.Identity, multipleExportState.StateToSet, multipleExportState.Comment); sync.WaitHandle.WaitOne(60000); } }, arg2 => arg2); }
private void TryRaiseCommand(MultipleExportState multipleExportState) { if (multipleExportState.CommandToExecute != WorkflowCommandType.SetWorkflowState && !multipleExportState.AuthorizationService.IsAllowedToExecuteCommand(multipleExportState.InstanceId, multipleExportState.CommandToExecute)) { AddErrorResult(multipleExportState); } else { try { switch (multipleExportState.CommandToExecute) { case WorkflowCommandType.Sighting: RaiseAction(multipleExportState, WorkflowInitService.RaiseSighting); break; case WorkflowCommandType.StartProcessing: WorkflowInitService.CreateWorkflowIfNotExists(multipleExportState.InstanceId); using (var sync = GetWorkflowSync(multipleExportState.InstanceId)) { sync.WaitHandle.WaitOne(4000); } RaiseAction(multipleExportState, WorkflowInitService.RaiseStartProcessing); break; case WorkflowCommandType.Denial: RaiseActionWithComment(multipleExportState, WorkflowInitService.RaiseDenial); break; case WorkflowCommandType.Rollback: RaiseActionWithComment(multipleExportState, WorkflowInitService.RaiseRollback); break; case WorkflowCommandType.SetWorkflowState: RaiseSetStateAction(multipleExportState); break; default: throw new ActionNotSupportedException(); } } catch (Exception ex) { AddErrorResult(multipleExportState); throw; } AddOkResult(multipleExportState); } }
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); }
public void Rollback(ApiCommandArgument arg) { AuthenticationService.Authenticate(arg.SecurityToken); if (!AuthenticationService.IsAuthenticated()) { return; } if (!AuthorizationService.IsAllowedToExecuteCommand(arg.InstanceId, WorkflowCommandType.Rollback)) { return; } FireCommandWithWaiting(arg, delegate(ApiCommandArgument arg1) { using (var sync = GetWorkflowSync(arg1)) { WorkflowInitService.RaiseRollback(arg1.InstanceId, arg1.Comment); sync.WaitHandle.WaitOne(4000); } }); }