//------------------------------------------------------------------------------------ /// <summary> /// Updates the change list based upon the current state of the given item. /// </summary> //------------------------------------------------------------------------------------ public void UpdateChangeList(StoreItem item) { // Changes for items in immediate save mode are being batched for a direct save // operation, and don't go on the changelist. if (item.IsInImmediateSave) { return; } bool isDirty = item.IsDirty; if (!m_changedItems.Contains(item)) { if (isDirty) { m_changedItems.Add(item); Planner.OnChangeListUpdated(this, new ChangeListUpdatedEventArgs(m_changedItems.Count)); } } else { if (!isDirty) { m_changedItems.Remove(item); Planner.OnChangeListUpdated(this, new ChangeListUpdatedEventArgs(m_changedItems.Count)); } } }
// Check for duplicate items (items with same name) in edm item collection and store item collection. Mapping is the only logical place to do this. // The only other place is workspace, but that is at the time of registering item collections (only when the second one gets registered) and we // will have to throw exceptions at that time. If we do this check in mapping, we might throw error in a more consistent way (by adding it to error // collection). Also if someone is just creating item collection, and not registering it with workspace (tools), doing it in mapping makes more sense private static void CheckForDuplicateItems(EdmItemCollection edmItemCollection, StoreItemCollection storeItemCollection, List <EdmSchemaError> errorCollection) { Debug.Assert(edmItemCollection != null && storeItemCollection != null && errorCollection != null, "The parameters must not be null in CheckForDuplicateItems"); foreach (GlobalItem item in edmItemCollection) { if (storeItemCollection.Contains(item.Identity)) { errorCollection.Add(new EdmSchemaError(Strings.Mapping_ItemWithSameNameExistsBothInCSpaceAndSSpace(item.Identity), (int)StorageMappingErrorCode.ItemWithSameNameExistsBothInCSpaceAndSSpace, EdmSchemaErrorSeverity.Error)); } } }
private void BuildBacklogItems() { m_backlogItems = new StoreItemCollection <BacklogItem>(); m_activeBacklogItems = new StoreItemCollection <BacklogItem>(); foreach (WorkItem workItem in m_workItems) { BacklogItem backlogItem = workItem.ParentBacklogItem; if (backlogItem != null) { if (!m_backlogItems.Contains(backlogItem)) { m_backlogItems.Add(backlogItem); if (backlogItem.IsActive) { m_activeBacklogItems.Add(backlogItem); } } } } }