public IEnumerable<TrackedChange<Element>> SynchronizeElements(IEnumerable<ElementPo> aplicationElements, IEnumerable<Element> dbElements ) { // List<ElementPo> tmpAplicationElements = new List<ElementPo>(aplicationElements); TrackChangesCollection<Element> databaseElements=new TrackChangesCollection<Element>(dbElements); databaseElements.ClearChanges(); SynchronizeTravers(aplicationElements.Where(x=>x.Type==1),dbElements,databaseElements,null); return databaseElements.GetChanges(); }
private void SynchronizeTravers(IEnumerable<ElementPo> aplicationElements, IEnumerable<Element> dbElements, TrackChangesCollection<Element> databaseElements,Element parrent) { foreach (ElementPo aplicationElement in aplicationElements) { Element el = dbElements.FirstOrDefault(x => x.Name == aplicationElement.Name); if (el == null) { databaseElements.Add(aplicationElement.TransformToEntity()); } else { SynchronizeTravers(aplicationElement.Childs.Where(x=>x.IsChecked),el.Childs,databaseElements,el); } } }
/// <summary> /// Initializes a new instance of the <see cref="PermissionPo"/> class. /// </summary> public PermissionPo() { ElementsPermissions = new TrackChangesCollection<ElementPermissionPo>(); DataPermissions=new TrackChangesCollection<DataPermissionPo>(); Enabled = false; }
/// <summary> /// Initializes a new instance of the <see cref="GroupPo"/> class. /// </summary> public GroupPo() { Permissions = new TrackChangesCollection<PermissionPo>(); Enabled = true; }
/// <summary> /// Initializes a new instance of the <see cref="UserPo"/> class. /// </summary> public UserPo() { Profession = new ProfessionPo(); Groups = new TrackChangesCollection<GroupPo>(); Permissions=new TrackChangesCollection<PermissionPo>(); }