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);
        }
Exemple #3
0
 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;
     });
 }
Exemple #4
0
        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;
            });
        }