示例#1
0
        internal static async Task NotifyAppAboutEvents(IAltinnApp altinnApp, Instance instance, List <InstanceEvent> events)
        {
            foreach (InstanceEvent processEvent in events)
            {
                if (Enum.TryParse <InstanceEventType>(processEvent.EventType, true, out InstanceEventType eventType))
                {
                    switch (eventType)
                    {
                    case InstanceEventType.process_StartEvent:

                        break;;

                    case InstanceEventType.process_StartTask:
                        await altinnApp.OnStartProcessTask(processEvent.ProcessInfo?.CurrentTask?.ElementId, instance);

                        break;

                    case InstanceEventType.process_EndTask:
                        await altinnApp.OnEndProcessTask(processEvent.ProcessInfo?.CurrentTask?.ElementId, instance);

                        break;

                    case InstanceEventType.process_EndEvent:
                        await altinnApp.OnEndProcess(processEvent.ProcessInfo?.EndEvent, instance);

                        break;
                    }
                }
            }
        }
        internal static async Task NotifyAppAboutEvents(IAltinnApp altinnApp, Instance instance, List <InstanceEvent> events)
        {
            foreach (InstanceEvent processEvent in events)
            {
                switch (processEvent.EventType)
                {
                case "process:StartEvent":
                    await altinnApp.OnStartProcess(processEvent.ProcessInfo?.StartEvent, instance);

                    break;

                case "process:StartTask":
                    await altinnApp.OnStartProcessTask(processEvent.ProcessInfo?.CurrentTask?.ElementId, instance);

                    break;

                case "process:EndTask":
                    await altinnApp.OnEndProcessTask(processEvent.ProcessInfo?.CurrentTask?.ElementId, instance);

                    break;

                case "process:EndEvent":
                    await altinnApp.OnEndProcess(processEvent.ProcessInfo?.EndEvent, instance);

                    break;
                }
            }
        }
示例#3
0
        /// <summary>
        /// Calls Altinn app to get start event and goto next task
        /// </summary>
        /// <param name="instance">instance can be updated by app</param>
        /// <returns></returns>
        private async Task <Instance> StartProcessAndGotoNextTask(Instance instance)
        {
            string startEvent = await _altinnApp.OnInstantiateGetStartEvent(instance);

            if (startEvent != null)
            {
                UserContext userContext = _userHelper.GetUserContext(HttpContext).Result;

                ProcessResult result = await _processService.ProcessStartAndGotoNextTask(instance, startEvent, userContext);

                if (result != null)
                {
                    instance = result.Instance;
                    foreach (InstanceEvent instanceEvent in result.Events)
                    {
                        if (instanceEvent.EventType.Equals("process:StartTask"))
                        {
                            // make sure app can run event on start task.
                            await _altinnApp.OnStartProcessTask(instanceEvent.ProcessInfo.CurrentTask.ElementId, instance);
                        }
                    }

                    // make sure we save the instance after app has handled events
                    return(await _instanceService.UpdateInstance(instance));
                }
            }

            return(null);
        }
示例#4
0
        private void NotifyAppAboutEvents(Instance instance, List <InstanceEvent> events)
        {
            foreach (InstanceEvent processEvent in events)
            {
                switch (processEvent.EventType)
                {
                case "process:StartEvent":
                    _altinnApp.OnStartProcess(processEvent.ProcessInfo?.StartEvent, instance);
                    break;

                case "process:StartTask":
                    _altinnApp.OnStartProcessTask(processEvent.ProcessInfo?.CurrentTask?.ElementId, instance);
                    break;

                case "process:EndTask":
                    _altinnApp.OnEndProcessTask(processEvent.ProcessInfo?.CurrentTask?.ElementId, instance);
                    break;

                case "process:EndEvent":
                    _altinnApp.OnEndProcess(processEvent.ProcessInfo?.EndEvent, instance);
                    break;
                }
            }
        }