Exemple #1
0
        public RemoteTaskInfo[] GetTaskInfos([NotNull, ItemNotNull] string[] taskIds)
        {
            if (taskIds.Any(string.IsNullOrWhiteSpace))
            {
                throw new InvalidOperationException(string.Format("Every taskId must be non-empty: {0}", string.Join(", ", taskIds)));
            }
            var tasks = HandleTaskCollection.GetTasks(taskIds);
            var taskExceptionInfos = TaskExceptionInfoStorage.Read(tasks.Select(x => x.Meta).ToArray());

            return(tasks.Select(task =>
            {
                var taskType = TaskDataRegistry.GetTaskType(task.Meta.Name);
                var taskData = (IRtqTaskData)Serializer.Deserialize(taskType, task.Data);
                return new RemoteTaskInfo(task.Meta, taskData, taskExceptionInfos[task.Meta.Id]);
            }).ToArray());
        }