public static void Sync() { if (SyncData.IsConnect) { SetFromDb(); if (RepositorySubGroupProduct.SubGroupProducts.Count == 0) { RepositorySubGroupProduct.SetFromDb(); } foreach (var g in GroupProducts) { var subgroups = RepositorySubGroupProduct.SubGroupProducts.FindAll(k => k.GroupId == g.Id); g.SubGroups.AddRange(subgroups); foreach (var f in subgroups) { f.Group = g; } } SaveFile(); } else { LoadFile(); foreach (var g in GroupProducts) { RepositorySubGroupProduct.SubGroupProducts.AddRange(g.SubGroups); } } }
public static void DeleteSubgroup(SubGroupProduct subgroup) { var current = subgroup.Group.SubGroups.First(s => s.Id == subgroup.Id); subgroup.Group.SubGroups.Remove(current); var document = XDocument.Load(Path); var groupElement = document.GetXElements("Palettes", "Palette").First(p => p.GetXAttributeValue("Group", "ID").ToInt() == subgroup.Group.Id); groupElement.GetXElements("SubGroup").First(s => s.GetXAttributeValue("ID").ToInt() == subgroup.Id).Remove(); document.Save(Path); RepositorySubGroupProduct.SubGroupProducts.Remove(subgroup); RepositorySubGroupProduct.DeleteFromDb(subgroup); }
public static void AddSubgroup(SubGroupProduct subgroup) { subgroup.Group.SubGroups.Add(subgroup); if (!File.Exists(Path)) { SaveFile(); } var document = XDocument.Load(Path); var element = document.GetXElements("Palettes", "Palette").First(p => p.GetXAttributeValue("Group", "ID").ToInt() == subgroup.Group.Id); GroupProduct.ToXElementSubGroups(element, subgroup.Group); File.WriteAllText(Path, document.ToString()); RepositorySubGroupProduct.SubGroupProducts.Add(subgroup); RepositorySubGroupProduct.InsertToDb(subgroup); }