public void Init() { CleanUp(); model = new WorkflowDefinitionModel { Value = new WorkflowDefinition { ID = "unittest1", Name = "unit test 1", Enabled = 1, Creator = "frank", }, }; ActivityDefinitionModel activity1 = new ActivityDefinitionModel { Value = new ActivityDefinition { ID = "unittestactivity1", Name = "activity1", Page = "page1", Title = "title1", Creator = "frank", WorkflowDefinitionID = "unittest1", Type = 1, Enabled = 1, } }; ActivityDefinitionModel activity2 = new ActivityDefinitionModel { Value = new ActivityDefinition { ID = "unittestactivity2", Name = "activity2", Page = "page2", Title = "title2", Creator = "frank", WorkflowDefinitionID = "unittest1", Enabled = 1, Type = 1, } }; ActivityDefinitionModel activity3 = new ActivityDefinitionModel { Value = new ActivityDefinition { ID = "unittestactivity3", Name = "activity3", Page = "page3", Title = "title3", Creator = "frank", WorkflowDefinitionID = "unittest1", Type = 1, Enabled = 1, } }; LinkDefinitionModel link1 = new LinkDefinitionModel { Value = new LinkDefinition { ID = "unittestlink1", Name = "link1", FromActivityDefinitionID = "unittestactivity1", ToActivityDefinitionID = "unittestactivity2", WorkflowDefinitionID = "unittest1", }, FromActivityDefinition = activity1, ToActivityDefinition = activity2, }; LinkDefinitionModel link2 = new LinkDefinitionModel { Value = new LinkDefinition { ID = "unittestlink2", Name = "link2", FromActivityDefinitionID = "unittestactivity2", ToActivityDefinitionID = "unittestactivity3", WorkflowDefinitionID = "unittest1", }, FromActivityDefinition = activity2, ToActivityDefinition = activity3, }; model.Root = activity1; model.Save(); }
public static WorkflowDefinitionModel Load(string id) { var mapper = MapperHelper.GetMapper(); WorkflowDefinitionDao wfdao = new WorkflowDefinitionDao(mapper); ActivityDefinitionDao addao = new ActivityDefinitionDao(mapper); LinkDefinitionDao linkdao = new LinkDefinitionDao(mapper); ActivityAuthDefinitionDao aadd = new ActivityAuthDefinitionDao(mapper); WorkflowDefinition workflow = null; List<ActivityDefinition> activityList = new List<ActivityDefinition>(); List<LinkDefinition> linkList = new List<LinkDefinition>(); List<ActivityAuthDefinition> authList = new List<ActivityAuthDefinition>(); WorkflowDefinitionModel model = null; var item = cache.GetItem(id); if (item != null) { model = item.Value as WorkflowDefinitionModel; return model; } workflow = wfdao.Query(new WorkflowDefinitionQueryForm { ID = id, Enabled = 1 }).FirstOrDefault(); activityList = addao.Query(new ActivityDefinitionQueryForm { WorkflowDefinitionID = id, Enabled = 1 }); linkList = linkdao.Query(new LinkDefinitionQueryForm { WorkflowDefinitionID = id }); authList = aadd.Query(new ActivityAuthDefinitionQueryForm { WorkflowDefinitionID = id }); if (workflow != null) { List<ActivityDefinitionModel> activityModelList = new List<ActivityDefinitionModel>(); List<LinkDefinitionModel> linkModelList = new List<LinkDefinitionModel>(); model = new WorkflowDefinitionModel { value = workflow, }; bool foundRoot = false; foreach (var link in linkList) { linkModelList.Add(new LinkDefinitionModel { Value = link, }); } foreach (var activity in activityList) { List<LinkDefinitionModel> preLinks = new List<LinkDefinitionModel>(); var preLinksTemp = linkModelList.FindAll(t => t.Value.ToActivityDefinitionID == activity.ID); List<LinkDefinitionModel> nextLinks = new List<LinkDefinitionModel>(); var nextLinksTemp = linkModelList.FindAll(t => t.Value.FromActivityDefinitionID == activity.ID); ActivityDefinitionModel activitymodel = new ActivityDefinitionModel { Value = activity, }; if (authList != null) { activitymodel.AuthDefinition = authList.FindAll(t => t.ActivityDefinitionID == activity.ID); } activitymodel.PreLinks = preLinksTemp; activitymodel.NextLinks = nextLinksTemp; activityModelList.Add(activitymodel); //没有父连接说明是根节点 if (!foundRoot && preLinksTemp.Count == 0) { model.Root = activitymodel; foundRoot = true; } } item = new CacheItem(id, model); cache.AddItem(item, 30 * 60); } return model; }