public bool AddItem(TItem item, TItem afterItem) { var indexF = 0; if (afterItem != null) { indexF = Array.IndexOf(FixedData, afterItem); if (indexF == -1) { return(false); } } var anchorItem = FixedData[indexF]; var indexD = -1; for (int i = 0; i < Data.Count; i++) { if (ReferenceEquals(Data[i].Item, anchorItem)) { indexD = i; break; } } if (indexD == -1) { return(false); } var displayableItem = new DisplayableItem <TItem>(item); if (afterItem != null) { FixedData = FixedData.Take(indexF + 1) .Concat(new[] { item }) .Concat(FixedData.Skip(indexF + 1)) .ToArray(); Data = Data.Take(indexD + 1) .Concat(new[] { displayableItem }) .Concat(Data.Skip(indexD + 1)) .ToList(); } else { FixedData = new[] { item }.Concat(FixedData).ToArray(); Data = new[] { displayableItem }.Concat(Data).ToList(); } StateHasChanged(); return(true); }
public async Task <bool> RemoveItem(TItem item) { var indexD = -1; for (int i = 0; i < Data.Count; i++) { if (ReferenceEquals(Data[i].Item, item)) { indexD = i; break; } } if (indexD == -1) { return(false); } var indexF = Array.IndexOf(FixedData, item); if (indexF != -1) { FixedData = FixedData.Take(indexF) .Concat(FixedData.Skip(indexF + 1)) .ToArray(); } Data = Data.Take(indexD) .Concat(Data.Skip(indexD + 1)) .ToList(); if (Data.Count == 0) { await Refresh(); } StateHasChanged(); return(true); }
private void SaveToXml(XmlElement xml, bool oldStyle) { SaveBase(xml); if (FullName != null) { FullName.SaveToXml(xml); } foreach (ColumnStructure col in Columns) { XmlElement cx = XmlTool.AddChild(xml, "Column"); col.Save(cx); } if (oldStyle) { foreach (DatAdmin.Constraint cnt in Constraints) { cnt.Save(xml); } } else { foreach (DatAdmin.Constraint cnt in Constraints) { XmlElement cx = XmlTool.AddChild(xml, "Constraint"); cnt.SaveToXml(cx); } } XmlTool.SaveParameters(xml, SpecificData); if (!String.IsNullOrEmpty(Comment)) { xml.AddChild("Comment").InnerText = Comment; } if (FixedData != null) { FixedData.SaveToXml(xml.AddChild("FixedData")); } }
private static void InsertFixedData(FixedData fixedData) { FixedDatas.Add(fixedData.Key, fixedData); }