public IEnumerable <CommandExecutionStatus> MassExportBillDemands(ApiMassCommandEventArg arg) { AuthenticationService.Authenticate(arg.SecurityToken); if (!AuthenticationService.IsAuthenticated()) { return(GetErrorExecutionStatuses(arg)); } if (!AuthorizationService.IsAllowedToExecuteCommand(arg.InstanceIds, WorkflowCommandType.Export)) { GetErrorExecutionStatuses(arg); } var states = new MultiThreadedPersistance <CommandExecutionStatus>(); var handles = new List <WaitHandle>(); foreach (var instanceId in arg.InstanceIds) { var handle = new AutoResetEvent(false); handles.Add(handle); var state = new MultipleExportBillDemandState { InstanceId = instanceId, States = states, WaitHandle = handle, BillDemandBusinessService = BillDemandBuinessService, Identity = AuthenticationService.GetCurrentIdentity(), Comment = arg.Comment }; ThreadPool.QueueUserWorkItem(RaiseBillDemandExportTask, state); } WaitHandle.WaitAll(handles.ToArray(), new TimeSpan(0, 0, 10, 0)); return(states.Items); }
public IEnumerable <CommandExecutionStatus> MassExecuteCommand(ApiMassCommandEventArg arg) { AuthenticationService.Authenticate(arg.SecurityToken); return(!AuthenticationService.IsAuthenticated() ? GetErrorExecutionStatuses(arg) : ExecuteMassCommand(arg)); }