Example #1
0
        /// <summary>
        /// Add Workflow
        /// </summary>
        /// <param name="workflowCode">WorkflowCode</param>
        /// <param name="serviceUrl">ServiceUrl</param>
        /// <param name="bindingConfiguration">BindingConfiguration</param>
        /// <param name="serviceEndpoint">ServiceEndpoint</param>
        public void AddWorkflow(string workflowCode, string serviceUrl, string bindingConfiguration, string serviceEndpoint)
        {
            using (var uofw = new FlowTasksUnitOfWork())
            {
                var wfc = uofw.WorkflowCodes.FirstOrDefault(wc => wc.Code == workflowCode);
                if (wfc == null)
                {
                    wfc = new WorkflowCode {
                        Code = workflowCode, Description = "Added by Skecth"
                    };
                    uofw.WorkflowCodes.Insert(wfc);
                }
                else
                {
                    var wfcfg = uofw.WorkflowConfigurations.FirstOrDefault(w => w.WorkflowCode.Code == wfc.Code && w.ExpiryDate == null, w => w.WorkflowCode);
                    if (wfcfg != null)
                    {
                        wfcfg.ExpiryDate = DateTime.Now;
                    }
                }

                var newcfg = new WorkflowConfiguration
                {
                    WorkflowCode         = wfc,
                    ServiceUrl           = serviceUrl,
                    BindingConfiguration = bindingConfiguration,
                    ServiceEndpoint      = serviceEndpoint,
                    EffectiveDate        = DateTime.Now
                };

                uofw.WorkflowConfigurations.Insert(newcfg);

                uofw.Commit();
            }
        }
Example #2
0
        /// <summary>
        /// Add Properties
        /// </summary>
        /// <param name="uofw">Unit of Work</param>
        /// <param name="domain">Domain</param>
        /// <param name="wfc">Workflow Code</param>
        /// <param name="wfd">Workflow Definition</param>
        /// <param name="properties">Properties</param>
        private void AddProperties(IFlowTasksUnitOfWork uofw, string domain, WorkflowCode wfc, WorkflowDefinition wfd, IEnumerable <PropertyInfo> properties)
        {
            var wfps = uofw.WorkflowProperties.Find(wfp => wfp.WorkflowCode.Code == wfc.Code &&
                                                    (wfp.Domain == domain || string.IsNullOrEmpty(wfp.Domain)), wfp => wfp.Property);

            foreach (var p in wfps)
            {
                uofw.WorkflowInParameters.Insert(
                    CreateWorkflowInParameter(
                        CreateProperty(p.Property.Name, p.Property.Value, p.Property.Type), wfd));
            }

            // Add properties from the parameter
            if (properties != null)
            {
                // Don't copy properties twice
                var workflowPropsName = wfps.Select(wfp => wfp.Property.Name);
                var distinctProp      = properties.Where(p => !workflowPropsName.Contains(p.Name)).Select(p => p);

                foreach (var p in distinctProp)
                {
                    uofw.WorkflowInParameters.Insert(
                        CreateWorkflowInParameter(
                            CreateProperty(p.Name, p.Value, p.Type), wfd));
                }
            }
        }
Example #3
0
        }                                                                           // 退回至发起人节点名
        public override List <ProjectComment> GetEntityProjectComment()
        {
            var souceCode = WorkflowCode.Split('_')[0];

            return(ProjectComment.Search(e => e.RefTableName == TableName &&
                                         e.SourceCode == souceCode && e.RefTableId == Id && e.Status == ProjectCommentStatus.Submit)
                   .OrderBy(e => e.CreateTime).ToList());
        }
Example #4
0
 private WorkflowProperty CreateWorkflowProperty(Property property, WorkflowCode workflowCode)
 {
     return(new WorkflowProperty
     {
         Property = property,
         WorkflowCode = workflowCode
     });
 }
Example #5
0
 private WorkflowDefinition CreateWorkflowDefinition(WorkflowCode workflowCode, WorkflowStatus workflowStatus)
 {
     return(new WorkflowDefinition
     {
         WorkflowOid = Guid.NewGuid(),
         WorkflowCode = workflowCode,
         StartedOn = DateTime.Now,
         WorkflowStatus = workflowStatus
     });
 }
Example #6
0
 private TaskConfiguration CreateTaskConfiguration(WorkflowCode workflowCode, string taskCode)
 {
     return(new TaskConfiguration
     {
         Description = "New Description",
         Title = "New titile",
         TaskCode = taskCode,
         WorkflowCode = workflowCode
     });
 }
Example #7
0
 private WorkflowConfiguration CreateWorkflowConfiguration(WorkflowCode workflowCode, string serviceEndpoint, string serviceUrl, string bindingConfiguration)
 {
     return(new WorkflowConfiguration
     {
         EffectiveDate = DateTime.Now,
         ServiceUrl = serviceUrl,
         ServiceEndpoint = serviceEndpoint,
         BindingConfiguration = bindingConfiguration,
         WorkflowCode = workflowCode
                        //ServiceDefinition = LoadWorkflow(workflowCode.Code)
     });
 }
Example #8
0
 private WorkflowProperty CreateWorkflowProperty(Property property, WorkflowCode workflowCode)
 {
     if (property.PropertyId != 0 && workflowCode.WorkflowCodeId != 0)
     {
         return(new WorkflowProperty {
             PropertyId = property.PropertyId, WorkflowCodeId = workflowCode.WorkflowCodeId
         });
     }
     return(new WorkflowProperty {
         Property = property, WorkflowCode = workflowCode
     });
 }
Example #9
0
        protected override void Execute(NativeActivityContext context)
        {
            Logger.Debug("InvokeChildWorkflow -> Start");

            var id = InvokeWorkflow(context.WorkflowInstanceId, WorkflowCode.Get(context), Domain.Get(context), Properties.Get(context), Async.Get(context));

            NewWorkflowId.Set(context, id);
            WorkflowId.Set(context, id);

            if (!Async.Get(context))
            {
                context.ScheduleActivity(_sync, OnChildWorkflowCompleteCallback);
            }

            Logger.Debug("InvokeChildWorkflow -> End");
        }
Example #10
0
        /// <summary>
        /// Read Configuration
        /// </summary>
        /// <param name="taskInfo">Task Info</param>
        /// <param name="workflowCode">Workflow Code</param>
        private void ReadConfiguration(TaskInfo taskInfo, WorkflowCode workflowCode)
        {
            TaskConfiguration tkc;

            using (var uofw = new FlowTasksUnitOfWork())
            {
                tkc = uofw.TaskConfigurations.FirstOrDefault(c => c.WorkflowCode.Code == workflowCode.Code && c.TaskCode == taskInfo.TaskCode);
            }
            if (tkc == null)
            {
                return;
            }

            taskInfo.Title = string.IsNullOrWhiteSpace(tkc.Title) ? taskInfo.Title : tkc.Title;
            taskInfo.Title = string.IsNullOrWhiteSpace(tkc.Description) ? taskInfo.Description : tkc.Description;
            taskInfo.Title = string.IsNullOrWhiteSpace(tkc.AssignedToUsers) ? taskInfo.AssignedToUsers : tkc.AssignedToUsers;
            taskInfo.Title = string.IsNullOrWhiteSpace(tkc.HandOverUsers) ? taskInfo.HandOverUsers : tkc.HandOverUsers;
            taskInfo.Title = string.IsNullOrWhiteSpace(tkc.UiCode) ? taskInfo.UiCode : tkc.UiCode;
            taskInfo.Title = string.IsNullOrWhiteSpace(tkc.DefaultResult) ? taskInfo.DefaultResult : tkc.DefaultResult;
        }
Example #11
0
        private WorkflowConfiguration CreateWorkflowConfiguration(WorkflowCode workflowCode, string serviceEndpoint, string serviceUrl, string bindingConfiguration)
        {
            if (workflowCode.WorkflowCodeId != 0)
            {
                return(new WorkflowConfiguration
                {
                    EffectiveDate = DateTime.Now,
                    ServiceUrl = serviceUrl,
                    ServiceEndpoint = serviceEndpoint,
                    BindingConfiguration = bindingConfiguration,
                    WorkflowCodeId = workflowCode.WorkflowCodeId
                });
            }

            return(new WorkflowConfiguration
            {
                EffectiveDate = DateTime.Now,
                ServiceUrl = serviceUrl,
                ServiceEndpoint = serviceEndpoint,
                BindingConfiguration = bindingConfiguration,
                WorkflowCode = workflowCode
            });
        }
        private string GetWorkflowXaml(NativeActivityContext context)
        {
            var workflowCode = WorkflowCode.Get(context);

            if (ActivityHelpers.UseActivityStackTrace(context))
            {
                var tracking = new CustomTrackingRecord(DisplayName);
                tracking.Data.Add("WorkflowCode", string.Format("Workflow='{0}'", workflowCode));
                context.Track(tracking);
            }

            if (string.IsNullOrEmpty(workflowCode))
            {
                throw new OperationException("WorkflowCode is null.");
            }

            if (_wfCache.ContainsKey(workflowCode))
            {
                return(_wfCache[workflowCode]);
            }

            _wfCache[workflowCode] = ActivityHelpers.GetWorkflowXaml(workflowCode);
            return(_wfCache[workflowCode]);
        }
Example #13
0
        public void CreateDb()
        {
            TraceEvent teDebug    = CreateEvent(TraceEventType.Debug, "Debug");
            TraceEvent teActivity = CreateEvent(TraceEventType.Activity, "Activity");
            TraceEvent teInfo     = CreateEvent(TraceEventType.Info, "Info");
            TraceEvent teError    = CreateEvent(TraceEventType.Error, "Error");

            uow.TraceEvents.Insert(teDebug);
            uow.TraceEvents.Insert(teActivity);
            uow.TraceEvents.Insert(teInfo);
            uow.TraceEvents.Insert(teError);

            WorkflowStatus wsInProgress = CreateStatus(WorkflowStatusType.InProgress, "InProgress");
            WorkflowStatus wsCompleted  = CreateStatus(WorkflowStatusType.Completed, "Completed");
            WorkflowStatus wsAborted    = CreateStatus(WorkflowStatusType.Aborted, "Aborted");
            WorkflowStatus wsTerminated = CreateStatus(WorkflowStatusType.Terminated, "Terminated");

            uow.WorkflowStatuses.Insert(wsInProgress);
            uow.WorkflowStatuses.Insert(wsCompleted);
            uow.WorkflowStatuses.Insert(wsAborted);
            uow.WorkflowStatuses.Insert(wsTerminated);

            SketchStatus skSaved        = CreateSketchStatus("Saved", "Sketch Saved");
            SketchStatus skDeployedDev  = CreateSketchStatus("DeployedDev", "Deployed to dev");
            SketchStatus skDeployedProd = CreateSketchStatus("DeployedProd", "Deployed to prod");
            SketchStatus skSentToSketch = CreateSketchStatus("SentToSketch", "Sent To Sketch");
            SketchStatus skAborted      = CreateSketchStatus("Aborted", "Abort workflow deployment");

            uow.SketchStatuses.Insert(skSaved);
            uow.SketchStatuses.Insert(skDeployedDev);
            uow.SketchStatuses.Insert(skDeployedProd);
            uow.SketchStatuses.Insert(skSentToSketch);
            uow.SketchStatuses.Insert(skAborted);

            WorkflowCode wc1 = CreateWorkflowCode("SampleWf1", "this is a sample wf code for testing (1)");

            uow.WorkflowCodes.Insert(wc1);
            WorkflowConfiguration wfc1 = CreateWorkflowConfiguration(wc1, "BasicHttpBinding_FlowTasks", "", "");

            uow.WorkflowConfigurations.Insert(wfc1);

            WorkflowCode wc2 = CreateWorkflowCode("SampleWf2", "this is a sample wf code for testing (2)");

            uow.WorkflowCodes.Insert(wc2);
            WorkflowConfiguration wfc2 = CreateWorkflowConfiguration(wc2, "BasicHttpBinding_IFlowTasksOperations2", "http://localhost/Flow.Tasks.Workflows/SampleWf2.xamlx", "BasicHttpBinding_FlowTasks");

            uow.WorkflowConfigurations.Insert(wfc2);

            WorkflowCode wc3 = CreateWorkflowCode("SampleWf3", "this is a sample wf code for testing (3)");

            uow.WorkflowCodes.Insert(wc3);
            WorkflowConfiguration wfc3 = CreateWorkflowConfiguration(wc3, "BasicHttpBinding_IFlowTasksOperations3", "http://localhost/Flow.Tasks.Workflows/SampleWf3.xamlx", "BasicHttpBinding_FlowTasks");

            uow.WorkflowConfigurations.Insert(wfc3);

            WorkflowCode wc4 = CreateWorkflowCode("SampleWf4", "this is a sample wf code for testing (4)");

            uow.WorkflowCodes.Insert(wc4);
            WorkflowConfiguration wfc4 = CreateWorkflowConfiguration(wc4, "BasicHttpBinding_IFlowTasksOperations4", "http://localhost/Flow.Tasks.Workflows/SampleWf4.xamlx", "BasicHttpBinding_FlowTasks");

            uow.WorkflowConfigurations.Insert(wfc4);

            WorkflowCode wc5 = CreateWorkflowCode("SampleWf5", "this is a sample wf code for testing (5)");

            uow.WorkflowCodes.Insert(wc5);
            WorkflowConfiguration wfc5 = CreateWorkflowConfiguration(wc5, "BasicHttpBinding_IFlowTasksOperations5", "http://localhost/Flow.Tasks.Workflows/SampleWf5.xamlx", "BasicHttpBinding_FlowTasks");

            uow.WorkflowConfigurations.Insert(wfc5);

            WorkflowCode wc6 = CreateWorkflowCode("SampleWf6", "this is a sample wf code for testing (6)");

            uow.WorkflowCodes.Insert(wc6);
            WorkflowConfiguration wfc6 = CreateWorkflowConfiguration(wc6, "BasicHttpBinding_IFlowTasksOperations6", "http://localhost/Flow.Tasks.Workflows/SampleWf6.xamlx", "BasicHttpBinding_FlowTasks");

            uow.WorkflowConfigurations.Insert(wfc6);

            WorkflowCode wc7 = CreateWorkflowCode("SampleWf7", "this is a sample wf code for testing (7)");

            uow.WorkflowCodes.Insert(wc7);
            WorkflowConfiguration wfc7 = CreateWorkflowConfiguration(wc7, "BasicHttpBinding_IFlowTasksOperations7", "http://localhost/Flow.Tasks.Workflows/SampleWf7.xamlx", "BasicHttpBinding_FlowTasks");

            uow.WorkflowConfigurations.Insert(wfc7);

            WorkflowCode wc8 = CreateWorkflowCode("SampleWf8", "this is a sample wf code for testing (8)");

            uow.WorkflowCodes.Insert(wc8);
            WorkflowConfiguration wfc8 = CreateWorkflowConfiguration(wc8, "BasicHttpBinding_IFlowTasksOperations8", "http://localhost/ServiceWorkflowsVB/SampleWf8.xamlx", "BasicHttpBinding_FlowTasks");

            uow.WorkflowConfigurations.Insert(wfc8);

            WorkflowCode wc9 = CreateWorkflowCode("SampleWf9", "this is a sample wf code for testing (9)");

            uow.WorkflowCodes.Insert(wc9);
            WorkflowConfiguration wfc9 = CreateWorkflowConfiguration(wc9, "BasicHttpBinding_IFlowTasksOperations9", "http://localhost/ServiceWorkflowsVB/SampleWf9.xamlx", "BasicHttpBinding_FlowTasks");

            uow.WorkflowConfigurations.Insert(wfc9);

            // Topic
            TopicStatus topicNew  = CreateTopicStatus("New", "New topic message");
            TopicStatus topicRead = CreateTopicStatus("Read", "Read topic message");

            uow.TopicStatuses.Insert(topicNew);
            uow.TopicStatuses.Insert(topicRead);
        }
Example #14
0
        protected override void Seed(FlowTasksEntities context)
        {
            TraceEvent teDebug    = CreateEvent(TraceEventType.Debug, "Debug");
            TraceEvent teActivity = CreateEvent(TraceEventType.Activity, "Activity");
            TraceEvent teInfo     = CreateEvent(TraceEventType.Info, "Info");
            TraceEvent teError    = CreateEvent(TraceEventType.Error, "Error");

            context.TraceEvents.AddOrUpdate(
                te => te.Type,
                teDebug,
                teActivity,
                teError,
                teInfo
                );

            WorkflowStatus wsInProgress = CreateStatus(WorkflowStatusType.InProgress, "InProgress");
            WorkflowStatus wsCompleted  = CreateStatus(WorkflowStatusType.Completed, "Completed");
            WorkflowStatus wsAborted    = CreateStatus(WorkflowStatusType.Aborted, "Aborted");
            WorkflowStatus wsTerminated = CreateStatus(WorkflowStatusType.Terminated, "Terminated");

            context.WorkflowStatuses.AddOrUpdate(
                ws => ws.Status,
                wsCompleted,
                wsAborted,
                wsInProgress,
                wsTerminated
                );

            SketchStatus skSaved        = CreateSketchStatus("Saved", "Sketch Saved");
            SketchStatus skDeployedDev  = CreateSketchStatus("DeployedDev", "Deployed to dev");
            SketchStatus skDeployedProd = CreateSketchStatus("DeployedProd", "Deployed to prod");
            SketchStatus skSentToSketch = CreateSketchStatus("SentToSketch", "Sent To Sketch");
            SketchStatus skAborted      = CreateSketchStatus("Aborted", "Abort workflow deployment");

            context.SketchStatuses.AddOrUpdate(
                sk => sk.Status,
                skAborted,
                skDeployedDev,
                skDeployedProd,
                skSaved,
                skSentToSketch
                );

            WorkflowCode wc1       = CreateWorkflowCode("SampleWf1", "this is a sample wf code for testing (1)");
            WorkflowCode wc2       = CreateWorkflowCode("SampleWf2", "this is a sample wf code for testing (2)");
            WorkflowCode wc3       = CreateWorkflowCode("SampleWf3", "this is a sample wf code for testing (3)");
            WorkflowCode wc4       = CreateWorkflowCode("SampleWf4", "this is a sample wf code for testing (4)");
            WorkflowCode wc4a      = CreateWorkflowCode("SampleWf4a", "this is a sample wf code for testing (4a)");
            WorkflowCode wc5       = CreateWorkflowCode("SampleWf5", "this is a sample wf code for testing (5)");
            WorkflowCode wc6       = CreateWorkflowCode("SampleWf6", "this is a sample wf code for testing (6)");
            WorkflowCode wc7       = CreateWorkflowCode("SampleWf7", "this is a sample wf code for testing (7)");
            WorkflowCode wc8       = CreateWorkflowCode("SampleWf8", "this is a sample wf code for testing (8)");
            WorkflowCode wc9       = CreateWorkflowCode("SampleWf9", "this is a sample wf code for testing (9)");
            WorkflowCode wcSketch  = CreateWorkflowCode("SketchWf", "Sketch workflow code");
            WorkflowCode wcHoliday = CreateWorkflowCode("HolidayWf", "Holiday workflow code");

            context.WorkflowCodes.AddOrUpdate(
                wc => wc.Code,
                wc1, wc2, wc3, wc4, wc4a, wc5, wc6, wc7, wc8, wc9, wcSketch, wcHoliday);

            WorkflowConfiguration wfc1       = CreateWorkflowConfiguration(wc1, "", "", "BasicHttpBinding_FlowTasks");
            WorkflowConfiguration wfc2       = CreateWorkflowConfiguration(wc2, "BasicHttpBinding_IFlowTasksOperations2", "http://localhost/Flow.Tasks.Workflows/SampleWf2.xamlx", "BasicHttpBinding_FlowTasks");
            WorkflowConfiguration wfc3       = CreateWorkflowConfiguration(wc3, "BasicHttpBinding_IFlowTasksOperations3", "http://localhost/Flow.Tasks.Workflows/SampleWf3.xamlx", "BasicHttpBinding_FlowTasks");
            WorkflowConfiguration wfc4       = CreateWorkflowConfiguration(wc4, "BasicHttpBinding_IFlowTasksOperations4", "http://localhost/Flow.Tasks.Workflows/SampleWf4.xamlx", "BasicHttpBinding_FlowTasks");
            WorkflowConfiguration wfc4a      = CreateWorkflowConfiguration(wc4a, "BasicHttpBinding_IFlowTasksOperations4a", "http://localhost/Flow.Tasks.Workflows/SampleWf4a.xamlx", "BasicHttpBinding_FlowTasks");
            WorkflowConfiguration wfc5       = CreateWorkflowConfiguration(wc5, "BasicHttpBinding_IFlowTasksOperations5", "http://localhost/Flow.Tasks.Workflows/SampleWf5.xamlx", "BasicHttpBinding_FlowTasks");
            WorkflowConfiguration wfc6       = CreateWorkflowConfiguration(wc6, "BasicHttpBinding_IFlowTasksOperations6", "http://localhost/Flow.Tasks.Workflows/SampleWf6.xamlx", "BasicHttpBinding_FlowTasks");
            WorkflowConfiguration wfc7       = CreateWorkflowConfiguration(wc7, "BasicHttpBinding_IFlowTasksOperations7", "http://localhost/Flow.Tasks.Workflows/SampleWf7.xamlx", "BasicHttpBinding_FlowTasks");
            WorkflowConfiguration wfc8       = CreateWorkflowConfiguration(wc8, "BasicHttpBinding_IFlowTasksOperations8", "http://localhost/ServiceWorkflowsVB/SampleWf8.xamlx", "BasicHttpBinding_FlowTasks");
            WorkflowConfiguration wfc9       = CreateWorkflowConfiguration(wc9, "BasicHttpBinding_IFlowTasksOperations9", "http://localhost/ServiceWorkflowsVB/SampleWf9.xamlx", "BasicHttpBinding_FlowTasks");
            WorkflowConfiguration wfcSketch  = CreateWorkflowConfiguration(wcSketch, "", "http://localhost/Flow.Tasks.Workflows/SketchWf.xamlx", "BasicHttpBinding_FlowTasks");
            WorkflowConfiguration wfcHoliday = CreateWorkflowConfiguration(wcHoliday, "", "http://localhost/Flow.Tasks.Workflows/HolidayWf.xamlx", "BasicHttpBinding_FlowTasks");

            context.WorkflowConfigurations.AddOrUpdate(
                wfc => wfc.ServiceUrl,
                wfc1, wfc2, wfc3, wfc4, wfc4a, wfc5, wfc6, wfc7, wfc8, wfc9, wfcSketch, wfcHoliday);

            // Topic
            TopicStatus topicNew  = CreateTopicStatus("New", "New topic message");
            TopicStatus topicRead = CreateTopicStatus("Read", "Read topic message");

            context.TopicStatuses.AddOrUpdate(
                t => t.Status,
                topicNew,
                topicRead
                );

            // Holiday
            HolidayType pubType   = CreateHolidayType("Public", "Public holiday");
            HolidayType anualType = CreateHolidayType("Annual", "Annual leave");
            HolidayType sickType  = CreateHolidayType("Sick", "Sick leave");

            context.HolidayTypes.AddOrUpdate(
                h => h.Type,
                pubType, anualType, sickType
                );

            Holiday h2014 = CreateHoliday(pubType, 2014, HolidayStatus.A.ToString(), "01/01/2014,27/01/2014,25/04/2014,09/06/2014,06/10/2014,25/12/2014,26/12/2014");
            Holiday h2015 = CreateHoliday(pubType, 2015, HolidayStatus.A.ToString(), "01/01/2015,26/01/2015,25/04/2015,08/06/2015,05/10/2015,25/12/2015,28/12/2015");
            Holiday h2016 = CreateHoliday(pubType, 2016, HolidayStatus.A.ToString(), "01/01/2016,26/01/2016,25/04/2016,13/06/2016,03/10/2016,26/12/2016,27/12/2016");

            context.Holidays.AddOrUpdate(
                h => h.Year,
                h2014, h2015, h2016
                );

            // Sketch properties
            var sketchUrl  = CreateProperty("SketchWorkflowUrl", "http://localhost/Flow.Tasks.Workflows/");
            var sketchPath = CreateProperty("SketchWorkflowPath", @"C:\Dev\Codeplex\FlowTasks\src\Workflows\ServiceWorkflows\");

            context.Properties.AddOrUpdate(
                p => p.Name,
                sketchUrl, sketchPath
                );

            var sketchWfpUrl  = CreateWorkflowProperty(sketchUrl, wcSketch);
            var sketchWfpPath = CreateWorkflowProperty(sketchPath, wcSketch);

            context.WorkflowProperties.AddOrUpdate(
                p => new { p.WorkflowCodeId, p.WorkflowPropertyId },
                sketchWfpUrl, sketchWfpPath
                );


            context.Database.ExecuteSqlCommand(REMOVE_PROC);
            context.Database.ExecuteSqlCommand(REPORT_TASK_TIME_PROC);
            context.Database.ExecuteSqlCommand(REPORT_USER_TASK_COUNT_PROC);
            context.Database.ExecuteSqlCommand(REPORT_USER_TASKS_PROC);
            context.Database.ExecuteSqlCommand(REPORT_WORKFLOW_TIME_PROC);
            context.Database.ExecuteSqlCommand(TOPIC_SEARCH_FUNC);
        }