joelweiss/ChangeTracking

how to accept only AddedItems

Closed this issue · 1 comments

I been working with changetracking and I have a question how to accept changes only when save correctly AddItems.

You accept only the items where ChangeTrackingStatus == ChangeStatus.Added

void Main()
{
    List<Item> items = new List<Item>
    {
        new Item { Description = "Existing 1" },
        new Item { Description = "Existing 2" }
    };
    IList<Item> trackable = items.AsTrackable();
    
    trackable.Add(new Item { Description = "New Item" });
    
    trackable[0].Description = "Changed";
    
    foreach (Item item in trackable.CastToIChangeTrackableCollection())
    {
        IChangeTrackable<Item> trackableItem = item.CastToIChangeTrackable();
        if (trackableItem.ChangeTrackingStatus == ChangeStatus.Added)
        {
            trackableItem.AcceptChanges();
        }
    }
}

public class Item
{
    public virtual string Description { get; set; }
}

HTH