Синхронизировать данные в C # - PullRequest
0 голосов
/ 19 июня 2019

Я попал в API, который дает список стульев с указанием их местоположения. Я сохраняю эти данные в своей локальной базе данных. Всякий раз, когда я получал обновленные данные, такие как добавление нового стула, обновление местоположения стульев и удаление стула из API, я должен синхронизировать данные сервера с моей локальной базой данных. Я также назначил эти стулья с различными разделами в локальной базе данных.

Стул серверный класс:

  1. ChairServerId
  2. Описание (уникальный ключ)
  3. Местоположение

Класс локальной БД:

  1. ChairLocalDBId
  2. Описание (Уникальный)
  3. место

У меня есть таблица разделов в локальной базе данных. Он имеет два столбца, то есть SectionID и SectionName.

Кроме того, между стульями и секциями есть реляционный стол. Имеет две колонки.

У меня есть таблица SectionChair в базе данных, также есть два столбца, то есть SectionID и ChairLocalDbId.

Ниже приведены различные тестовые случаи:

  1. Синхронизация с тем же расположением стульев =>

    Один: если несколько стульев идут с одного места, это не должно добавить в локальная база данных. Это должно показать сообщение пользователю - показать дубликаты стульев с местоположением для пользователя.

    Два: в первый раз я сделал синхронизацию и добавили стул (стул один) «LocOne» в локальной базе данных. Теперь я добавлю один или несколько стульев (chairTwo) с тем же местоположением "locOne". Поэтому, когда я делаю Sync, он не добавит стул localdatabase, а также не удаляйте стулOne из локальной базы данных. Это просто показывает сообщение пользователю - показать дубликаты машин с расположением на пользователь.

  2. Удалить кресло с сервера (API) =>

    Если стул удален с сервера, его следует удалить с локального база данных. Валидация: если стул назначен на какие-либо секции, он не должен удален. Следует дать исключение - «пожалуйста, сначала неназначенный этот стул из раздела и снова выполните синхронизацию.

  3. Добавить новый стул с Сервера (API) =>

    Если на сервере добавлено кресло, его следует добавить в локальную базу данных.

  4. Обмен местами =>

    Один: 3. Если мы поменяем два или более стульев в API, местоположение также должно быть своп в локальной базе данных. Пример: Председатель 234 на месте расположения и Председатель 345 по местоположению locTwo в API и локальной базе данных. После этого пользователь поменяйте местами машины в API, например, кресло 234 в локации locTwo и кресло 345 на месте расположения. Когда я делаю синхронизацию, то же самое должно произойти в локальную базу данных и обновите новое место для стула в местном базы данных.

    Два: 4. Основная проблема: если мы сделаем обмен как первый пункт, раздел также должен быть обновлен в таблице SectionChair. Пример: Стул 234 расположен в 562 и является в разделе 5 место Х. Коммутируется со стула 789, расположенного в 223 который находится в Разделах 8, Место Y. При синхронизации стул 234 должен измениться на Раздел 8 Место Y и стул 789 должны измениться на Раздел 5 Место X.

Пожалуйста, предложите мне хороший подход.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...