protected override void Save() { IsListLoading = true; WorkCurrentItemBinding(); List <T> newItems = GetNewItems(); List <T> delItems = Mapper.Map <List <T> >(ListItems.Deleted.ToList()); List <T> changedItems = Mapper.Map <List <T> >(ListItems.Changed.ToList()); TrackableContainer <T> trackableContainer = new TrackableContainer <T>(changedItems, newItems, delItems); DoSaveEditable(trackableContainer).Subscribe((res) => { if (res) { ListItems.EndEdit(); EditMode = EditMode.ReadOnly; } else { ShowMessageBox("Error occured while saving data.", "Error", System.Windows.MessageBoxButton.OK); } IsListLoading = false; }, (e) => { ShowMessageBox("Error occured while saving data.", "Error", System.Windows.MessageBoxButton.OK); IsListLoading = false; }); }
protected abstract IObservable <bool> DoSaveEditable(TrackableContainer <T> trackableContainer);
protected override IObservable <bool> DoSaveEditable(TrackableContainer <CategoryDTO> trackableContainer) { var service = (CategoryService)Service; return(Observable.FromAsync(() => service.SaveTrackableList(trackableContainer))); }
public async Task <bool> SaveEditableList(TrackableContainer <CategoryDTO> trackableCollection = null) { return(await ServiceProvider.GetService <ICategoryManager>().SaveEditableListAsync(trackableCollection)); }