public static void OnInitialized()
        {
            Composite.GlobalInitializerFacade.InitializeTheSystem();
            try
            {
                var config = XElement.Load(PathUtil.Resolve("~/App_Data/Composite.Community.Twitter.FeedAggregator/Config.xml"));
                int delay;
                if (int.TryParse(config.AttributeValue("autoRefresh"), out delay))
                {
                    var queries         = config.Elements("Search").Select(d => d.AttributeValue("term")).NotNull().ToList();
                    var refreshWorkflow = WorkflowFacade.CreateNewWorkflow(
                        typeof(RefreshWorkflow),
                        new Dictionary <string, object> {
                        { "Delay", delay },
                        { "Queries", queries }
                    }
                        );

                    refreshWorkflow.Start();
                    LoggingService.LogInformation("FeedAggregator", "Run RefreshWorkflow");
                    WorkflowFacade.RunWorkflow(refreshWorkflow);
                }
                else
                {
                    throw new InvalidOperationException("Wrong autoRefresh config value");
                }
            }
            catch (Exception e)
            {
                LoggingService.LogError("FeedAggregator", e);
            }
        }
        public static void HandlePublishUnpublishWorkflows(IData selectedData, string cultureName, DateTime?publishDate, DateTime?unpublishDate, ref WorkflowInstance publishWorkflowInstance, ref WorkflowInstance unpublishWorkflowInstance)
        {
            var key = selectedData.GetUniqueKey().ToString();

            var existingPublishSchedule = PublishScheduleHelper.GetPublishSchedule(selectedData.DataSourceId.InterfaceType, key, cultureName);

            if (existingPublishSchedule != null)
            {
                WorkflowFacade.AbortWorkflow(existingPublishSchedule.WorkflowInstanceId);

                DataFacade.Delete(existingPublishSchedule);
            }

            if (publishDate != null)
            {
                publishWorkflowInstance = WorkflowFacade.CreateNewWorkflow(
                    typeof(DataPublishSchedulerWorkflow),
                    new Dictionary <string, object>
                {
                    { "Date", publishDate },
                    { "DataType", selectedData.DataSourceId.InterfaceType.FullName },
                    { "DataId", selectedData.GetUniqueKey().ToString() },
                    { "LocaleName", cultureName }
                }
                    );

                PublishScheduleHelper.CreatePublishSchedule(selectedData.DataSourceId.InterfaceType, selectedData.GetUniqueKey().ToString(), cultureName, publishDate.Value, publishWorkflowInstance);
            }

            var existingUnpublishSchedule = PublishScheduleHelper.GetUnpublishSchedule(selectedData.DataSourceId.InterfaceType, key, cultureName);

            if (existingUnpublishSchedule != null)
            {
                WorkflowFacade.AbortWorkflow(existingUnpublishSchedule.WorkflowInstanceId);

                DataFacade.Delete(existingUnpublishSchedule);
            }

            if (unpublishDate != null)
            {
                unpublishWorkflowInstance = WorkflowFacade.CreateNewWorkflow(
                    typeof(DataUnpublishSchedulerWorkflow),
                    new Dictionary <string, object>
                {
                    { "Date", unpublishDate },
                    { "DataType", selectedData.DataSourceId.InterfaceType.FullName },
                    { "DataId", key },
                    { "LocaleName", cultureName }
                }
                    );

                PublishScheduleHelper.CreateUnpublishSchedule(selectedData.DataSourceId.InterfaceType, key, cultureName, unpublishDate.Value, unpublishWorkflowInstance);
            }
        }
Beispiel #3
0
        public static void Run(int delay, RefreshFunctionDelegate refreshFunction)
        {
            var refreshWorkflow = WorkflowFacade.CreateNewWorkflow(
                typeof(RefreshWorkflow),
                new Dictionary <string, object> {
                { "Delay", delay },
                { "RefreshFunction", refreshFunction }
            }
                );

            refreshWorkflow.Start();

            WorkflowFacade.RunWorkflow(refreshWorkflow);
        }
Beispiel #4
0
        public static void HandlePublishUnpublishWorkflows(IPage selectedPage, string cultureName, DateTime?publishDate, DateTime?unpublishDate, ref WorkflowInstance publishWorkflowInstance, ref WorkflowInstance unpublishWorkflowInstance)
        {
            var existingPublishSchedule = PublishScheduleHelper.GetPublishSchedule(typeof(IPage), selectedPage.Id.ToString(), cultureName);

            if (existingPublishSchedule != null)
            {
                WorkflowFacade.AbortWorkflow(existingPublishSchedule.WorkflowInstanceId);

                DataFacade.Delete(existingPublishSchedule);
            }

            if (publishDate != null)
            {
                publishWorkflowInstance = WorkflowFacade.CreateNewWorkflow(
                    typeof(PagePublishSchedulerWorkflow),
                    new Dictionary <string, object>
                {
                    { "Date", publishDate },
                    { "PageId", selectedPage.Id },
                    { "LocaleName", cultureName }
                });

                PublishScheduleHelper.CreatePublishSchedule(typeof(IPage), selectedPage.Id.ToString(), cultureName, publishDate.Value, publishWorkflowInstance);
            }

            var existingUnpublishSchedule = PublishScheduleHelper.GetUnpublishSchedule(typeof(IPage), selectedPage.Id.ToString(), cultureName);

            if (existingUnpublishSchedule != null)
            {
                WorkflowFacade.AbortWorkflow(existingUnpublishSchedule.WorkflowInstanceId);

                DataFacade.Delete(existingUnpublishSchedule);
            }

            if (unpublishDate != null)
            {
                unpublishWorkflowInstance = WorkflowFacade.CreateNewWorkflow(
                    typeof(PageUnpublishSchedulerWorkflow),
                    new Dictionary <string, object>
                {
                    { "Date", unpublishDate },
                    { "PageId", selectedPage.Id },
                    { "LocaleName", cultureName }
                });

                PublishScheduleHelper.CreateUnpublishSchedule(typeof(IPage), selectedPage.Id.ToString(), cultureName, unpublishDate.Value, unpublishWorkflowInstance);
            }
        }
        /// <exclude />
        public static void Initialize()
        {
            WorkflowFacade.RunWhenInitialized(() =>
            {
                lock (_lock)
                {
                    if (_initialized == false)
                    {
                        WorkflowInstance workflowInstance = WorkflowFacade.CreateNewWorkflow(WorkflowFacade.GetWorkflowType("Composite.C1Console.Actions.Workflows.FlowInformationScavengerWorkflow"));
                        workflowInstance.Start();
                        WorkflowFacade.RunWorkflow(workflowInstance);

                        Log.LogVerbose(LogTitle, "Flow scavenger started");

                        _initialized = true;
                    }
                }
            });
        }
Beispiel #6
0
        /// <exclude />
        public static void Initialize()
        {
            WorkflowFacade.RunWhenInitialized(() =>
            {
                lock (_lock)
                {
                    if (!_initialized)
                    {
                        WorkflowInstance workflowInstance = WorkflowFacade.CreateNewWorkflow(WorkflowFacade.GetWorkflowType("Composite.C1Console.Events.Workflows.UserConsoleInformationScavengerWorkflow"));
                        workflowInstance.Start();
                        WorkflowFacade.RunWorkflow(workflowInstance);

                        if (RuntimeInformation.IsDebugBuild)
                        {
                            Log.LogVerbose(LogTitle, "Scavenger started");
                        }
                        _initialized = true;
                    }
                }
            });
        }