示例#1
0
        protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();
            RegisterMappings();
            var container = ConfigureContainer();

            RegisterGlobalFilters(GlobalFilters.Filters);
            RegisterRoutes(RouteTable.Routes);

            Runtime = WorkflowInit.Create(new DataServiceProvider(container));
        }
示例#2
0
        public static async Task <List <InboxItem> > FromDB(WorkflowRuntime runtime, WorkflowInbox [] inboxItems, CultureInfo culture)
        {
            var result = new List <InboxItem>();
            IEnumerable <IGrouping <Guid, WorkflowInbox> > groups = inboxItems.GroupBy(x => x.ProcessId);
            ProcessInstance processInstance;

            foreach (IGrouping <Guid, WorkflowInbox> group in groups)
            {
                try
                {
                    processInstance = await runtime.Builder.GetProcessInstanceAsync(group.Key).ConfigureAwait(false);
                }
                catch (Exception ex)
                {
                    processInstance = null;
                }

                foreach (WorkflowInbox inboxItem in group)
                {
                    List <string> availableCommands = HelperParser.SplitWithTrim(inboxItem.AvailableCommands, ",");
                    result.Add(new InboxItem()
                    {
                        Id                = inboxItem.Id,
                        ProcessId         = inboxItem.ProcessId,
                        IdentityId        = inboxItem.IdentityId,
                        AddingDate        = inboxItem.AddingDate,
                        AvailableCommands = availableCommands.Select(x =>
                                                                     new CommandName()
                        {
                            Name          = x,
                            LocalizedName = processInstance?.GetLocalizedCommandName(x, culture)
                        }).ToList()
                    });
                }
            }

            return(result);
        }