public FullyObservableDBDataUpdateResult <T> EndEdit(T item) { lock (fillUpdatingLock) { if (fillUpdating) { changesIdsDuringFillUpdate.Add(KeySelector(item)); } var res = new FullyObservableDBDataUpdateResult <T>(); var dbUpdaterResult = linkedData.DBUpdater.Invoke(item); res.Succeess = dbUpdaterResult.Succeess; if (dbUpdaterResult.Succeess) { //linkedData.LinkedClassesUpdater.Invoke(item); res.UpdatedItem = AddOrUpdateDataItem(dbUpdaterResult.UpdatedItem); } else { res.ErrorMessage = $"Ошибка при сохранении изменений в базе данных. {Environment.NewLine + dbUpdaterResult.ErrorMessage}"; } return(res); } }
//private long EditingItemId = 0; public FullyObservableDBDataUpdateResult <T> BeginEdit(long id) { var res = new FullyObservableDBDataUpdateResult <T>() { Succeess = true }; return(res); }
private Func <T, FullyObservableDBDataUpdateResult <T> > GetDBDeleter() { return((item) => { var result = new FullyObservableDBDataUpdateResult <T>(); var dbRes = deleteFunc(keySelector(item)); result.Succeess = dbRes.Success; if (!dbRes.Success) { result.ErrorMessage = dbRes.ErrorMessage; } return result; }); }
private Func <T, FullyObservableDBDataUpdateResult <T> > GetDBUpdater() { return((item) => { var result = new FullyObservableDBDataUpdateResult <T>(); OperationResult dbRes; long ItemId = keySelector(item); item = preUpdateFunc(item); if (ItemId == 0) { dbRes = createFunc(item); ItemId = dbRes.CreatedObjectId; } else { dbRes = updateFunc(item); } result.Succeess = dbRes.Success; if (dbRes.Success) { var newItmRes = getFunc(ItemId); if (newItmRes.Success) { result.UpdatedItem = postGetFunc(newItmRes.Result); } else { result.Succeess = false; result.ErrorMessage = newItmRes.ErrorMessage; } } else { result.ErrorMessage = dbRes.ErrorMessage; } return result; }); }