示例#1
0
        public async override Task <bool> SaveChangesAsync(CancellationToken tkn = default(CancellationToken))
        {
            foreach (var item in NewUnsavedItems)
            {
                try { if (!await AddItem(item, tkn))
                      {
                          return(false);
                      }
                }
                catch (Exception ex)
                { return(LogError($"AddItem: [nid:{item?.nid}] «{item?.title}»", ex)); }
            }
            NewUnsavedItems.Clear();


            foreach (var item in ChangedUnsavedItems)
            {
                try { if (!await UpdateItem(item, tkn))
                      {
                          return(false);
                      }
                }
                catch (Exception ex)
                { return(LogError($"UpdateItem: [nid:{item?.nid}] «{item?.title}»", ex)); }
            }
            ChangedUnsavedItems.Clear();

            return(true);
        }
示例#2
0
 protected void StartTrackingChanges()
 {
     foreach (var item in _list)
     {
         item.PropertyChanged += (s, e) =>
         {
             if (!ChangedUnsavedItems.Has(x => x.nid == item.nid))
             {
                 ChangedUnsavedItems.Add(item);
             }
         };
     }
 }