protected void btnImport_Click(object sender, System.EventArgs e) { string physicalApplicationPath = base.Request.PhysicalApplicationPath; string text = "UploadFiles\\Gantt\\"; string str = physicalApplicationPath + text; HttpPostedFile httpPostedFile = base.Request.Files["fupData"]; string text2 = System.DateTime.Now.ToString("yyyyMMddhhmmss"); string str2 = httpPostedFile.FileName.Substring(httpPostedFile.FileName.LastIndexOf(".")); text2 += str2; if (httpPostedFile.ContentLength > 0) { httpPostedFile.SaveAs(string.Format("{0}{1}{2}", physicalApplicationPath, text, text2)); System.Text.StringBuilder stringBuilder = new System.Text.StringBuilder(); System.Collections.Hashtable hashtable = PlusProject.Read(str + text2); Project project = new Project(); project.Load(hashtable); project.OrderProjectByStart(); System.Collections.ArrayList arrayList = (System.Collections.ArrayList)hashtable["Tasks"]; arrayList = TreeUtil.ToTree(arrayList, "children", "UID", "ParentTaskUID"); hashtable["Tasks"] = arrayList; string text3 = base.Request["id"]; this.hfldProjectUID.Value = text3; DBProject.ConvertXML(text3, hashtable); stringBuilder.Append("alert('系统提示:\\n\\nXML导入成功!');closeTab(true);"); base.RegisterScript(stringBuilder.ToString()); } }
private void TestAVLTreeBtn_OnClick(object sender, RoutedEventArgs e) { Tree tree = new AVLTree(1); tree = tree.InsertNode(tree, 2); tree = tree.InsertNode(tree, 3); tree = tree.InsertNode(tree, 4); tree = tree.InsertNode(tree, 5); tree = tree.InsertNode(tree, 6); tree = tree.InsertNode(tree, 7); tree = tree.InsertNode(tree, 8); tree = tree.InsertNode(tree, 9); tree = tree.InsertNode(tree, 10); tree = tree.InsertNode(tree, 11); tree = tree.InsertNode(tree, 12); tree = tree.InsertNode(tree, 13); tree = tree.InsertNode(tree, 14); tree = tree.InsertNode(tree, 15); Console.WriteLine("Pre---"); TreeUtil.PreTraverse(tree); Console.WriteLine("Middle---"); TreeUtil.MiddleTraverse(tree); Console.WriteLine("After---"); TreeUtil.AfterTraverse(tree); }
public Tree CreateCommitTree(Commit commit, Commit[] parentsInTargetRepo, Repository targetRepo) { var modify = new TreeModify(); modify.AddOrSet(_copyOptions.DirInSrcs[0], commit.Tree); return(TreeUtil.CopyTreeToAnotherRepositoryWithModifying(parentsInTargetRepo[0].Tree, targetRepo, modify)); }
private static List <TreePatternMatches> SubsumeFrequentTrees(List <TreePatternMatches> treeCollection) { List <TreePatternMatches> subsumedTreePatterns = new List <TreePatternMatches>(); foreach (var patternMatches1 in treeCollection.OrderByDescending(x => TreeUtil.SizeOfTree(x.Pattern))) { var tree1 = patternMatches1.Pattern; var matchingMethods = patternMatches1.MatchLocations; //Debug.WriteLine("Looking at tree:\n" + TreeUtil.StringRepresentation(tree1)); bool foundMatchingTree = false; foreach (var patternMatches2 in subsumedTreePatterns.OrderByDescending(x => TreeUtil.SizeOfTree(x.Pattern))) { var tree2 = patternMatches2.Pattern; if (TreeUtil.IsTreeSubtreeOfTree(tree1.Root, tree2.Root)) { //Debug.WriteLine($"subsumed by tree:\n{TreeUtil.StringRepresentation(tree2)}"); patternMatches2.SubtreeMatchLocations.UnionWith(patternMatches1.AllMatchLocations); foundMatchingTree = true; // it can only be merged with one tree, so skip out of the loop break; } } if (!foundMatchingTree) { //Debug.WriteLine("did not merge with any tree"); subsumedTreePatterns.Add(new TreePatternMatches(tree1, matchingMethods)); } } return(subsumedTreePatterns); }
public void BuildTreeLikeA_Ok() { var root = TreeUtil.BuildTreeLikeA(2); Assert.NotNull(root); Assert.Equal(1, root.Val); }
private DQueryDom GetQueryDom() { var query = _mQueryContainer.Build(); var goods = JoinAlias.Create("goods"); var pptAlias = JoinAlias.Create("gppt"); var propertyCatalog = new JoinAlias(typeof(GoodsPropertyCatalog)); query.From.AddJoin(JoinType.Left, new DQDmoSource(propertyCatalog), DQCondition.EQ(pptAlias, "GoodsPropertyCatalog_ID", propertyCatalog, "ID")); query.Columns.Add(DQSelectColumn.Field("ID", "序号")); query.Columns.Add(DQSelectColumn.Field("Code", goods, "存货编码")); query.Columns.Add(DQSelectColumn.Create(DQExpression.Field(goods, "Name"), "存货名称")); query.Columns.Add(DQSelectColumn.Field("Spec", goods)); query.Columns.Add(DQSelectColumn.Field("MainUnit", goods)); query.Columns.Add(DQSelectColumn.Field("SecondUnit", goods)); query.Columns.Add(DQSelectColumn.Field("Name", pptAlias, "存货属性")); query.Columns.Add(DQSelectColumn.Create(DQExpression.Field(propertyCatalog, "Name"), "属性分类")); query.Columns.Add(DQSelectColumn.Field("Store_Name")); query.Columns.Add(DQSelectColumn.Field("AccountingUnit_Name")); query.Where.Conditions.Add(DQCondition.EQ("AccountingUnit_Domain_ID", DomainContext.Current.ID)); if (!_goodsPropertyCatalogBox.IsEmpty) { TreeUtil.AddTreeCondition <GoodsPropertyCatalog>(query, long.Parse(_goodsPropertyCatalogBox.Value), propertyCatalog); } return(query); }
static void Main(string[] args) { // Collect trees from stdin string line; var inputs = new List <JObject>(); while ((line = Console.ReadLine()) != null && line != "") { inputs.Add(JObject.Parse(line)); } var trees = inputs.Select(x => toGenericTree(x)).ToList(); if (trees.Count <= 50) { return; } // Console.WriteLine(Newtonsoft.Json.JsonConvert.SerializeObject(trees[0])); try { var idioms = FindIdiomsInTrees(trees); foreach (var idiom in idioms) { if (TreeUtil.SizeOfTree(idiom.Pattern) <= 1) { continue; } Console.WriteLine(TreeUtil.StringRepresentation(idiom.Pattern, false)); } } catch (Exception) { } }
private DQueryDom GetQueryDom() { var query = _mQueryContainer.Build(); var root = query.From.RootSource.Alias; var pptAlias = JoinAlias.Create("gppt"); var propertyCatalog = new JoinAlias(typeof(GoodsPropertyCatalog)); var alreadySet = new JoinAlias(typeof(Goods_Accounting_Store)); query.From.AddJoin(JoinType.Left, new DQDmoSource(propertyCatalog), DQCondition.EQ(pptAlias, "GoodsPropertyCatalog_ID", propertyCatalog, "ID")); query.From.AddJoin(JoinType.Left, new DQDmoSource(alreadySet), DQCondition.EQ(root, "ID", alreadySet, "Goods_ID")); query.Columns.Add(DQSelectColumn.Field("ID", "存货ID")); query.Columns.Add(DQSelectColumn.Field("Code")); query.Columns.Add(DQSelectColumn.Field("Name")); query.Columns.Add(DQSelectColumn.Field("Spec")); query.Columns.Add(DQSelectColumn.Field("MainUnit")); query.Columns.Add(DQSelectColumn.Field("SecondUnit")); query.Columns.Add(DQSelectColumn.Create(DQExpression.Field(pptAlias, "Name"), "存货属性")); query.Columns.Add(DQSelectColumn.Create(DQExpression.Field(propertyCatalog, "Name"), "属性分类")); query.Columns.Add(DQSelectColumn.Field("AccountingUnit_Name", alreadySet, "已配会计单位")); if (!_goodsPropertyCatalogBox.IsEmpty) { TreeUtil.AddTreeCondition <GoodsPropertyCatalog>(query, long.Parse(_goodsPropertyCatalogBox.Value), propertyCatalog); } if (_checkBox.Checked) { query.Where.Conditions.Add(DQCondition.IsNull(DQExpression.Field(alreadySet, "Goods_ID"))); } return(query); }
public void BuildTreeFromMiddle_Ok() { var arr = new [] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; var root = TreeUtil.BuildTreeFromMiddle(arr, 0, arr.Length - 1); Assert.NotNull(root); Assert.Equal(5, root.Val); }
public static string SaveAll(Hashtable dataProject, string projectUID) { JSON.Encode(dataProject["Calendars"]); SaveAsTask(projectUID); DeleteTasks(projectUID); ArrayList tasks = TreeUtil.ToList((ArrayList)dataProject["Tasks"], "-1", "children", "UID", "ParentTaskUID"); InsertTasks(projectUID, tasks); return(projectUID); }
public override BinaryTree <T> Add(BinaryTree <T> node, T val) { if (node == null) { return(new AVLTree <T>(val, TreeCompareType)); } if (MyCompare(val, node.Val) == 0) { return(node); } if (MyCompare(val, node.Val) < 0) { // 插入左子树 node.Left = Add(node.Left, val); var leftDeep = TreeUtil.GetBinaryTreeDeep(node.Left); var rightDeep = TreeUtil.GetBinaryTreeDeep(node.Right); // 调整树的结构 if (leftDeep - rightDeep > 1) { // 左左 右旋转 node = RightSingleRotate(node); } else if (rightDeep - leftDeep > 1) { // 左右 左右旋转 node = LeftRightRotate(node); } } else { // 插入右子树 node.Right = Add(node.Right, val); var leftDeep = TreeUtil.GetBinaryTreeDeep(node.Left); var rightDeep = TreeUtil.GetBinaryTreeDeep(node.Right); // 调整树的结构 if (leftDeep - rightDeep > 1) { // 右左 右左旋转 node = RightLeftRotate(node); } else if (rightDeep - leftDeep > 1) { // 右右 左旋转 node = LeftSingleRotate(node); } } return(node); }
public void Trees( int slopeX, int slopeY, int expected) { var actual = TreeUtil.Trees(_geo, slopeX, slopeY); Assert.That( actual, Is.EqualTo(expected)); }
public ActionResult MenuTree() { var menuList = CommonService.GetMenus(); if (!IsSuperAdmin) { TreeUtil.RemoveNotValid(menuList, CurrentUser.Auths); } TreeUtil.SetParent(menuList); return(JsonNet(menuList, true)); }
public TextTree ConvertToCMOrderedTreeMinerTree(ICommonTree tree) { ICommonTreeNode root = tree.Root; Int32 size = (Int32)TreeUtil.SizeOfTree(root); textTree = new TextTree(tree.SourceTag, size); lastIndex = -1; VisitChild(root); return(textTree); }
public void GetPathSumFromBottomByStack_Ok(int n) { var root = TreeUtil.BuildTreeLikeA(n); Assert.NotNull(root); Assert.Equal(1, root.Val); var sums = TreePathSum.GetPathSumFromBottomByStack(root); var onePathSum = 2 * n + 1; Assert.Equal(4, sums.Count); Assert.Equal(onePathSum, sums[0]); }
public void SaveTree() { String dataJSON = Request["data"]; String removedJSON = Request["removed"]; ArrayList tree = (ArrayList)JSON.Decode(dataJSON); ArrayList removed = (ArrayList)JSON.Decode(removedJSON); //生成节点列表 ArrayList list = TreeUtil.ToList(tree, "-1", "children", "id", "pid"); //生成id和num for (int i = 0, l = list.Count; i < l; i++) { Hashtable node = (Hashtable)list[i]; node["num"] = i; if (node["id"] == null || node["id"].ToString() == "") { node["id"] = Guid.NewGuid().ToString(); } } //生成pid list = TreeUtil.ToList(tree, "-1", "children", "id", "pid"); // Add/Update/Move Node for (int i = 0, l = list.Count; i < l; i++) { Hashtable node = (Hashtable)list[i]; String state = node["_state"] != null ? node["_state"].ToString() : ""; if (state == "added") { node["createtime"] = DateTime.Now; new TestDB().InsertNode(node); } else { new TestDB().UpdateTreeNode(node); } } // Remove Node if (removed != null) { for (int j = 0, len = removed.Count; j < len; j++) { Hashtable removedNode = (Hashtable)removed[j]; new TestDB().RemoveNode(removedNode); } } }
public static string SavePart(Hashtable dataProject) { string prjId = dataProject["UID"].ToString(); string calendars = JSON.Encode(dataProject["Calendars"]); SaveCalendars(prjId, calendars, (GetMaxVersion(prjId) + 1).ToString()); ArrayList list = TreeUtil.ToList((ArrayList)dataProject["Tasks"], "-1", "children", "UID", "ParentTaskUID"); ArrayList c = (ArrayList)dataProject["RemovedTasks"]; if (c != null) { list.AddRange(c); } foreach (Hashtable hashtable in list) { string str3 = Convert.ToString(hashtable["_state"]); if (str3 != "") { hashtable["ProjectUID"] = prjId; string str4 = str3; if (str4 != null) { if (!(str4 == "added")) { if (str4 == "modified") { goto Label_010C; } if (str4 == "removed") { goto Label_0122; } } else { InsertTask(prjId, hashtable); } } } continue; Label_010C: DBUtil.Execute("delete from plus_task where PROJECTUID_ = @ProjectUID and UID_ = @UID ", hashtable); InsertTask(prjId, hashtable); continue; Label_0122: DBUtil.Execute("delete from plus_task where PROJECTUID_ = @ProjectUID and UID_ = @UID ", hashtable); } return(prjId); }
protected override DQueryDom GetQueryDom() { var dom = base.GetQueryDom(); var prop = new JoinAlias(typeof(GoodsProperty)); dom.From.AddJoin(JoinType.Inner, new DQDmoSource(prop), DQCondition.EQ(prop, "ID", dom.From.RootSource.Alias, "GoodsProperty_ID")); var catalog = dom.EJoin <GoodsPropertyCatalog>("GoodsPropertyCatalog_ID", JoinType.Left, prop); dom.Columns.Add(DQSelectColumn.Create(DQExpression.Field(prop, "Name"), "存货属性")); dom.Columns.Add(DQSelectColumn.Create(DQExpression.Field(catalog, "Name"), "存货属性分类")); TreeUtil.AddTreeCondition <GoodsPropertyCatalog>(dom, mQueryContainer, "存货属性分类", catalog); DomainUtil.AddDomainPermissionLimit(dom, typeof(GoodsProperty), prop); return(dom); }
/// <summary> /// 获取授权url /// </summary> /// <param name="roleIds"></param> /// <returns></returns> public static List <string> GetUrls(params int[] roleIds) { var list = new List <string>(); var db = new GrainManageDB(); var auths = db.Select <string>(string.Format("select Auths from rm_role where Id in({0})", string.Join(",", roleIds))); if (auths != null && auths.Any()) { var menus = GetMenus(); foreach (var item in auths) { TreeUtil.GetUrls(menus, item.Split(','), list); } } return(list); }
public static string ImportXML(string progressVerId, Hashtable dataProject) { StringBuilder builder = new StringBuilder(); string str = JSON.Encode(dataProject["Calendars"]); object obj2 = dataProject["StartDate"]; object obj3 = dataProject["FinishDate"]; builder.Append("\r\n IF EXISTS(SELECT * FROM plus_BackProject WHERE ProjectGuid=@progressVerId)\r\n\t UPDATE plus_BackProject SET Calendars=@calendars,Start=@start,Finish=@finish WHERE ProjectGuid=@progressVerId \r\n ELSE\r\n\t INSERT INTO plus_BackProject(ProjectGuid,Calendars,Start,Finish) \r\n\t VALUES(@progressVerId,@calendars,@start,@finish)"); builder.AppendLine(); builder.Append("\r\n DELETE FROM plus_task WHERE PROJECTUID_=@progressVerId"); builder.AppendLine(); SqlParameter[] commandParameters = new SqlParameter[] { new SqlParameter("@progressVerId", progressVerId), new SqlParameter("@calendars", str), new SqlParameter("@start", obj2), new SqlParameter("@finish", obj3) }; SqlHelper.ExecuteNonQuery(CommandType.Text, builder.ToString(), commandParameters); ArrayList tasks = TreeUtil.ToList((ArrayList)dataProject["Tasks"], "-1", "children", "UID", "ParentTaskUID"); InsertTasks(progressVerId, tasks); return(progressVerId); }
protected override void OnPreviewMouseWheel(MouseWheelEventArgs e) { base.OnPreviewMouseWheel(e); if (_partTextEditor == null) { return; } var textEditor = TreeUtil.FindVisualParent <TextEditor>(e.OriginalSource as DependencyObject); if (textEditor == null) { return; } var scrollViewer = TreeUtil.FindVisualChild <ScrollViewer>(textEditor); if (scrollViewer != null && Keyboard.Modifiers == ModifierKeys.Control && DoubleUtil.GreaterThan(scrollViewer.ScrollableWidth, 0)) { if (e.Delta > 0) { _partTextEditor.ScrollToHorizontalOffset(Math.Max(0, _partTextEditor.HorizontalOffset - e.Delta)); } else { _partTextEditor.ScrollToHorizontalOffset(_partTextEditor.HorizontalOffset - e.Delta); } return; } if (_partTextEditor.VerticalScrollBarVisibility == ScrollBarVisibility.Disabled || scrollViewer != null && DoubleUtil.IsZero(scrollViewer.ScrollableHeight)) { this.RaiseEvent(new MouseWheelEventArgs(e.MouseDevice, e.Timestamp, e.Delta) { RoutedEvent = MouseWheelEvent, Source = this }); } }
protected void Page_Load(object sender, System.EventArgs e) { string text = System.Convert.ToString(base.Request["id"]); if (!string.IsNullOrEmpty(text)) { System.Collections.Hashtable hashtable = DBProject.LoadProject(text); System.Collections.ArrayList tree = (System.Collections.ArrayList)hashtable["Tasks"]; hashtable["Tasks"] = TreeUtil.ToList(tree, "-1", "children", "UID", "ParentTaskUID"); string text2 = System.IO.Path.GetFileNameWithoutExtension(System.Convert.ToString(hashtable["Name"])) + "_" + System.DateTime.Now.ToString("yyyyMMddHHmmss") + ".xml"; string text3 = HttpContext.Current.Server.MapPath("~/UploadFiles/Gantt/"); if (!System.IO.Directory.Exists(text3)) { System.IO.Directory.CreateDirectory(text3); } string text4 = text3 + text2; PlusProject.Write(text4, hashtable); base.Response.Clear(); System.IO.FileStream fileStream = null; try { fileStream = new System.IO.FileStream(text4, System.IO.FileMode.Open, System.IO.FileAccess.Read, System.IO.FileShare.Read); int num = (int)fileStream.Length; byte[] buffer = new byte[num]; int count = fileStream.Read(buffer, 0, num); HttpContext.Current.Response.ContentType = "application/octet-stream"; HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(text2)); HttpContext.Current.Response.OutputStream.Write(buffer, 0, count); HttpContext.Current.Response.Flush(); HttpContext.Current.Response.End(); } finally { fileStream.Close(); } System.IO.FileInfo fileInfo = new System.IO.FileInfo(text4); fileInfo.Delete(); base.Response.End(); return; } base.Response.Write("请传入正确的项目UID"); }
public static Hashtable LoadProject(string progressVerId) { ArrayList startFinish = GetStartFinish(progressVerId); if (startFinish.Count == 0) { throw new Exception("没有找到项目, UID:" + progressVerId); } Hashtable hashtable = (Hashtable)startFinish[0]; Hashtable hashtable2 = new Hashtable(); hashtable2["UID"] = progressVerId; hashtable2["Name"] = hashtable["NAME_"]; hashtable2["LastSaved"] = hashtable["LASTSAVED_"]; hashtable2["CalendarUID"] = hashtable["CALENDARUID_"]; hashtable2["StartDate"] = hashtable["STARTDATE_"]; hashtable2["FinishDate"] = hashtable["FINISHDATE_"]; DataTable startFinishDate = GetStartFinishDate(progressVerId); if ((startFinishDate != null) && (startFinishDate.Rows.Count > 0)) { hashtable2["StartDate"] = startFinishDate.Rows[0]["Start"]; hashtable2["FinishDate"] = startFinishDate.Rows[0]["Finish"]; } if ((hashtable2["FinishDate"] != null) && (Convert.ToDateTime(hashtable2["FinishDate"].ToString()) <= Convert.ToDateTime(hashtable2["StartDate"].ToString()))) { hashtable2["FinishDate"] = Convert.ToDateTime(hashtable2["StartDate"]).AddMinutes(1.0); } hashtable2["Calendars"] = (ArrayList)JSON.Decode(hashtable["CALENDARS_"].ToString()); string calendars = GetCalendars(progressVerId); if (!string.IsNullOrEmpty(calendars)) { hashtable2["Calendars"] = (ArrayList)JSON.Decode(calendars); } ArrayList list2 = TreeUtil.ToTree(SelectTasks(progressVerId), "children", "UID", "ParentTaskUID"); hashtable2["Tasks"] = list2; hashtable2["Resources"] = new ArrayList(); return(hashtable2); }
private static List <TreePatternMatches> CanonicalizeFrequentTrees(List <TreePatternMatches> treeCollection) { var minimizedTreePatternMatches = new List <TreePatternMatches>(); foreach (var treeMatches in treeCollection) { var jsonTree = JsonNodeOperations.ConvertToJsonNode(treeMatches.Pattern.Root); var origRepresentation = TreeUtil.StringRepresentation((ICommonTree)jsonTree); //Debug.WriteLine("Looking at tree:\n" + origRepresentation); var minimizedTree = JsonNodeOperations.TrimJsonNodeTree(jsonTree); var newRepresentation = TreeUtil.StringRepresentation((ICommonTree)minimizedTree); if (origRepresentation != newRepresentation) { //Debug.WriteLine("minimized tree to:"); //Debug.WriteLine(newRepresentation); } bool foundMatchingTree = false; foreach (var treeMatches2 in minimizedTreePatternMatches) { if (TreeUtil.IsEqual(minimizedTree, treeMatches2.Pattern)) { //Debug.WriteLine($"merging with tree:\n{TreeUtil.StringRepresentation(treeMatches2.Pattern)}"); treeMatches.MatchLocations.UnionWith(treeMatches.MatchLocations); foundMatchingTree = true; // it can only be merged with one tree, so skip out of the loop break; } } if (!foundMatchingTree) { //Debug.WriteLine("did not merge with any tree"); minimizedTreePatternMatches.Add(new TreePatternMatches(minimizedTree, treeMatches.MatchLocations)); } } return(minimizedTreePatternMatches); }
public static void ConvertXML(string prjId, Hashtable dataProject) { int num2 = GetMaxVersion(prjId) + 1; StringBuilder builder = new StringBuilder(); builder.Append("\r\n INSERT INTO plus_BackTask (UID_,ID_ ,NAME_ ,START_ ,FINISH_ ,DURATION_ ,WORK_ ,PERCENTCOMPLETE_ ,WEIGHT_ ,CONSTRAINTTYPE_ ,\r\n CONSTRAINTDATE_ ,MILESTONE_ ,SUMMARY_ ,CRITICAL_ ,PRIORITY_ ,NOTES_ ,DEPARTMENT_ ,PRINCIPAL_ ,PREDECESSORLINK_ ,FIXEDDATE_ ,\r\n PARENTTASKUID_ ,PROJECTUID_ ,ACTUALSTART_ ,ACTUALFINISH_ ,ACTUALDURATION_ ,ASSIGNMENTS_ ,WBS_ ,CRITICAL2_ ,Version)\r\n SELECT UID_ ,ID_ ,NAME_ ,START_ ,FINISH_ ,DURATION_ ,WORK_ ,PERCENTCOMPLETE_ , WEIGHT_ ,CONSTRAINTTYPE_ ,CONSTRAINTDATE_ ,\r\n MILESTONE_ ,SUMMARY_ ,CRITICAL_ ,PRIORITY_ ,NOTES_ ,DEPARTMENT_ ,PRINCIPAL_ , PREDECESSORLINK_ ,FIXEDDATE_ ,PARENTTASKUID_ ,\r\n PROJECTUID_ ,ACTUALSTART_ ,ACTUALFINISH_ ,ACTUALDURATION_ ,ASSIGNMENTS_ ,WBS_ ,CRITICAL2_ ,@nextVersion FROM plus_task \r\n WHERE PROJECTUID_=@prjId"); builder.AppendLine(); builder.Append("DELETE FROM plus_task WHERE PROJECTUID_ =@prjId"); builder.AppendLine(); string str = JSON.Encode(dataProject["Calendars"]); object obj2 = dataProject["StartDate"]; object obj3 = dataProject["FinishDate"]; builder.Append("\r\n --更新项目时间\r\n -- UPDATE PT_PrjInfo SET StartDate=@start, EndDate=@finish WHERE PrjGuid=@prjId\r\n DECLARE @currentBackProject INT --项目的备份信息\r\n SELECT @currentBackProject=COUNT(*) FROM plus_BackProject WHERE ProjectGuid=@prjId AND Version=@nextVersion\r\n IF EXISTS(SELECT PROJECTUID_ FROM plus_BackTask WHERE PROJECTUID_=@prjId AND Version=@nextVersion) --有数据备份\r\n BEGIN\r\n IF(@currentBackProject=0) \r\n INSERT INTO plus_BackProject(ProjectGuid,Calendars,Version,Start,Finish) \r\n SELECT UID_,CALENDARS_,@nextVersion,STARTDATE_,FINISHDATE_ FROM plus_project WHERE UID_=@prjId\r\n --添加xml中的Calendars信息\r\n INSERT INTO plus_BackProject(ProjectGuid,Calendars,Version,Start,Finish) VALUES( @prjId,@XmlCalendars,@nextVersion+1,@start,@finish)\r\n END \r\n ELSE --无数据备份\r\n BEGIN\r\n IF(@currentBackProject>0) \r\n BEGIN\r\n DELETE FROM plus_BackProject WHERE ProjectGuid=@prjId AND Version=@nextVersion\r\n INSERT INTO plus_BackProject(ProjectGuid,Calendars,Version,Start,Finish) VALUES( @prjId,@XmlCalendars,@nextVersion,@start,@finish)\r\n END\r\n ELSE\r\n INSERT INTO plus_BackProject(ProjectGuid,Calendars,Version,Start,Finish) VALUES( @prjId,@XmlCalendars,@nextVersion,@start,@finish)\r\n END"); builder.AppendLine(); string calendars = GetCalendars(prjId, num2.ToString()); SqlParameter[] commandParameters = new SqlParameter[] { new SqlParameter("@nextVersion", num2), new SqlParameter("@prjId", prjId), new SqlParameter("@calendars", calendars), new SqlParameter("@start", obj2), new SqlParameter("@finish", obj3), new SqlParameter("@XmlCalendars", str) }; SqlHelper.ExecuteNonQuery(CommandType.Text, builder.ToString(), commandParameters); ArrayList tasks = TreeUtil.ToList((ArrayList)dataProject["Tasks"], "-1", "children", "UID", "ParentTaskUID"); InsertTasks(prjId, tasks); }
protected override DQueryDom GetQueryDom() { var dom = base.GetQueryDom(); var goodsProperty = dom.EJoin <GoodsProperty>(); dom.Columns.Add(DQSelectColumn.Field("ID")); dom.Columns.Add(DQSelectColumn.Field("Name")); dom.Columns.Add(DQSelectColumn.Field("Spec")); dom.Columns.Add(DQSelectColumn.Field("GoodsProperty_Name")); dom.Columns.Add(DQSelectColumn.Field("GoodsPropertyCatalog_Name", goodsProperty)); dom.Columns.Add(DQSelectColumn.Field("SecondUnit")); dom.Columns.Add(DQSelectColumn.Field("MainUnit")); dom.Columns.Add(DQSelectColumn.Field("MainUnitRatio")); dom.Columns.Add(DQSelectColumn.Field("SecondUnitRatio")); dom.Columns.Add(DQSelectColumn.Field("UnitConvertDirection")); dom.Columns.Add(DQSelectColumn.Create(DQExpression.Snippet <decimal?>("null"), "主数量")); dom.Columns.Add(DQSelectColumn.Create(DQExpression.Snippet <decimal?>("null"), "辅数量")); TreeUtil.AddTreeCondition <GoodsPropertyCatalog>(dom, mQueryContainer, "存货属性分类", null, goodsProperty); dom.Where.Conditions.Add(DQCondition.EQ("Stopped", false)); return(dom); }
public static Hashtable LoadProject(string projectUID, string version) { ArrayList list = DBUtil.Select("select * from plus_project where UID_ ='" + projectUID + "'"); if (list.Count == 0) { throw new Exception("没有找到项目, UID:" + projectUID); } Hashtable hashtable = (Hashtable)list[0]; Hashtable hashtable2 = new Hashtable(); hashtable2["UID"] = projectUID; hashtable2["Name"] = hashtable["NAME_"]; hashtable2["LastSaved"] = hashtable["LASTSAVED_"]; hashtable2["CalendarUID"] = hashtable["CALENDARUID_"]; hashtable2["StartDate"] = hashtable["STARTDATE_"]; hashtable2["FinishDate"] = hashtable["FINISHDATE_"]; DataTable startFinishDate = GetStartFinishDate(projectUID, version); if ((startFinishDate != null) && (startFinishDate.Rows.Count > 0)) { hashtable2["StartDate"] = startFinishDate.Rows[0]["Start"]; hashtable2["FinishDate"] = startFinishDate.Rows[0]["Finish"]; } hashtable2["Calendars"] = (ArrayList)JSON.Decode(hashtable["CALENDARS_"].ToString()); string calendars = GetCalendars(projectUID, version); if (!string.IsNullOrEmpty(calendars)) { hashtable2["Calendars"] = (ArrayList)JSON.Decode(calendars); } ArrayList list2 = TreeUtil.ToTree(SelectTasks(projectUID, version), "children", "UID", "ParentTaskUID"); hashtable2["Tasks"] = list2; hashtable2["Resources"] = new ArrayList(); return(hashtable2); }
protected void Page_Load(object sender, System.EventArgs e) { string text = System.Convert.ToString(base.Request["id"]); string version = base.Request["version"]; if (!string.IsNullOrEmpty(text)) { System.Collections.Hashtable hashtable = DBProject.LoadProject(text, version); System.Collections.ArrayList tree = (System.Collections.ArrayList)hashtable["Tasks"]; hashtable["Tasks"] = TreeUtil.ToList(tree, "-1", "children", "UID", "ParentTaskUID"); string text2 = System.IO.Path.GetFileNameWithoutExtension(System.Convert.ToString(hashtable["Name"])) + "_" + System.DateTime.Now.ToString("yyyyMMddHHmmss") + ".xml"; string text3 = HttpContext.Current.Server.MapPath("~/UploadFiles/Gantt/" + text2); PlusProject.Write(text3, hashtable); base.Response.Clear(); base.Response.AddHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode(text2, System.Text.Encoding.UTF8)); base.Response.WriteFile(text3); base.Response.Flush(); System.IO.FileInfo fileInfo = new System.IO.FileInfo(text3); fileInfo.Delete(); base.Response.End(); return; } base.Response.Write("请传入正确的项目UID"); }
private void DoubleClickDemo(MouseButtonEventArgs e) { var listBoxItem = TreeUtil.FindVisualParent <ListBoxItem>(e.OriginalSource as DependencyObject); if (listBoxItem == null) { return; } var model = listBoxItem.DataContext as DisplayDemoViewModel; if (model == null) { return; } if (!_regionManager.Regions.ContainsRegionWithName(RegionNames.Content)) { return; } var region = _regionManager.Regions[RegionNames.Content]; var viewType = typeof(DemoControl); var demoView = region.Views.FirstOrDefault(v => v.GetType() == viewType); if (demoView != null) { _eventAggregator.GetEvent <OpenDemoTypeEvent>().Publish(model.Type); _eventAggregator.GetEvent <NavigationContentEvent>().Publish(new NavigationContentPayload { IsChild = true, ViewType = viewType, ViewName = Service.Models.ResourcesMap.DemoTypeNameDic[model.Type] }); region.Activate(demoView); } }
public int CalculateHeight() { return(TreeUtil.CalculatetHeight(this)); }