Я использую веб-сервис для обновления информации некоторых моих пользователей о сторонних БД.
Эту информацию обычно необходимо обновлять и на моей БД (я знаю, что это звучит не очень хорошо, ноничего не могу с этим поделать ..).
Недавно у нас начались всевозможные проблемы несоответствия между базой данных веб-службы и нашей локальной базой данных, поэтому теперь я ищу способ убедиться, что моя локальная база данных только обновленаесли вызов веб-службы возвратил успех.
Основная проблема заключается в том, что веб-служба может возвращать успех многими способами (например, bool, enum и т. д.), и, конечно, каждый метод имеет свою сигнатуру.
Например:
У меня есть методы веб-службы, такие как:
public bool ChangeDetails(User user)
И:
public SuccessStatus RemoveUser(long userId)
, которые только в случае успешного завершения должны вызвать вызов:
public bool UpdateUserDetails(long userId string userName)
И:
public bool RemoveUser(long userId)
(я просто намеревался продемонстрировать расхождение методов ..)
То, что я хочу сделать, - это механизм, которыйбудет «привязывать» каждый метод WS к методу db, используя один метод (но, возможно, есть лучший способ убедиться, что метод db будет выполняться только в случае успешного завершения метода WS).
Мой лучший способЧтобы решить эту проблему, нужно написать метод, вызвать его UpdateWSandDB
, который получит делегат метода WS, его тип успеха (например, bool / enum), его значение успеха, имя метода db, параметры для каждого метода .... Как выЯ вижу, это очень неловкий способ сделать это.
Есть ли более аккуратный и элегантный способ?
Спасибо.