public void CmdPrepareData() { try { LocalData.MaxLevel = SourceList.Max(x => x.Level); LocalData.MinLevel = SourceList.Min(x => x.Level); LocalData.LevelsCount = LocalData.MaxLevel - LocalData.MinLevel + 1; int k = 0; foreach (TreeItem item in SourceList.OrderBy(x => x.SequenceNumber)) { k++; item.SequenceNumber = (double)k; item.Level = item.Level - LocalData.MinLevel + 1; item.IsLastItemInLevel = LocalTreeFunctions.CmdCheckIfItemIsLastInThisLevel(SourceList, item.ID); item.IsVisible = true; item.IsExpanded = true; item.HasChildren = SourceList.Any(x => x.ParentID == item.ID); } } catch (Exception ex) { LocalTreeFunctions.PrintError(ex.Message, MethodBase.GetCurrentMethod()); } }
public void CmdDeleteSelected() { if (CurrentID > 0) { if (SourceList.Any(x => x.ID == CurrentID)) { if (!SourceList.Any(x => x.ParentID == CurrentID)) { SourceList.Remove(SourceList.Single(x => x.ID == CurrentID)); CurrentID = 0; int k = 0; foreach (TreeItem item in SourceList.OrderBy(x => x.SequenceNumber)) { k++; item.SequenceNumber = (double)k; item.IsLastItemInLevel = LocalTreeFunctions.CmdCheckIfItemIsLastInThisLevel(SourceList, item.ID); item.HasChildren = SourceList.Any(x => x.ParentID == item.ID); } } else { jsRuntime.InvokeVoidAsync("alert", "Parent node can't be deleted!"); } } } StateHasChanged(); }