Mds.Libraries.CSharp.Updates 5.1.0-beta.18822

Mds.Libraries.CSharp.Updates - пакет для работы с изменениями и их отслеживанием

Задачи пакета

  • Средства для обновления в апи, PartialUpdater
  • Применение и отмлеживание изменений, Updater
  • Синхронизация и импорт, UpdatesIndex, CollectionsSynchronizer и GroupsSynchronizer

Синхронизация

Объявляем тип реализующий интерфейс IUpdatable.


using Mds.Libraries.CSharp.Updates.Synchronizers.Abstractions;
using Mds.Libraries.CSharp.Updates;

public class ClientSummary : BaseDataType, IUpdatable<ClientSummary>
{
    private static readonly MdsUpdater<ClientSummary> updater = new MdsUpdater<ClientSummary>();

    public ClientSummary() : base()
    {
        ExternalId = 0;
        Name = string.Empty;
    }

    public ClientSummary(Client import)
    {
        ExternalId = import.Id;
        Name = import.Name;
    }


    public long ExternalId { get; set; }
    public string Name { get; set; }


    // Реализация интерфейса IUpdatable
    public bool Update(ClientSummary update)
    {
        var updates = new Dictionary<string, object>
        {
            { nameof(ExternalId), update.ExternalId },
            { nameof(Name), update.Name }
        };

        return updater.Apply(this, updates);
    }
}

Коллекции

В месте, где нам нужна синххронизация коллекции создаем адаптер с указанием уникального свойства.

var adapter = CollectionsSynchronizerBuilder.Build<ClientSummary, long>(s => s.ExternalId);

// При желании можно указать настроки синхронизации
adapter.Settings = new CollectionsSynchronizerSettings
{
    ImportMode = ImportMode.Partial
};

Используем адаптер для синхронизации

// Когда синхронизируем все элементы в базе
var index = await adapter.SyncAsync(import, context);

// Когда синхронизируем только определенные элементы
var stored = new List<ClientSummary> { ... };
var index = adapter.Sync(converted, stored);

Переменная index содержит данные для синхронизации: какие элементы надо добавить, какие обновить, какие удалить.

Осталось только сохранить. Система умеет ускоренно (Bulk) сохранять в MSSQL и PostgreSQL

await index.SaveAsync(context);

Showing the top 20 packages that depend on Mds.Libraries.CSharp.Updates.

Packages Downloads
Mds.Libraries.CSharp.ChangesBus
Пакет для интеграции шины для обновления сущностей.
1
Mds.Libraries.CSharp.ChangesBus
Пакет для интеграции шины для обновления сущностей.
2
Mds.Libraries.CSharp.Db.Mongo
Пакет для удобной работы с mongoDb.
1
Mds.Libraries.CSharp.Db.Mongo
Пакет для удобной работы с mongoDb.
2
Mds.Libraries.CSharp.Server
Package with tools for server from MedvedStudio.
4

Version Downloads Last updated
7.0.1 3 02/28/2026
6.2.1 1 02/28/2026
6.2.0 1 02/28/2026
6.2.0-beta.120674 1 02/28/2026
6.2.0-beta.107775 1 02/28/2026
6.1.1 1 02/28/2026
6.1.0 1 02/28/2026
6.1.0-beta.106612 1 02/28/2026
6.1.0-beta.106605 1 02/28/2026
6.1.0-beta.106595 1 02/28/2026
6.1.0-beta.106589 1 02/28/2026
6.0.1 1 02/28/2026
6.0.0 1 02/28/2026
6.0.0-beta.99971 1 02/28/2026
6.0.0-beta.57258 1 02/28/2026
5.4.0 1 02/28/2026
5.4.0-beta.103919 1 02/28/2026
5.3.0 1 02/28/2026
5.3.0-beta.104867 1 02/28/2026
5.3.0-beta.71649 1 02/28/2026
5.3.0-beta.61482 1 02/28/2026
5.3.0-beta.58276 1 02/28/2026
5.2.1 1 02/28/2026
5.2.0 1 02/28/2026
5.2.0-beta.29757 1 02/28/2026
5.2.0-beta.29727 1 02/28/2026
5.2.0-beta.29724 1 02/28/2026
5.2.0-beta.29722 1 02/28/2026
5.2.0-beta.29719 1 02/28/2026
5.1.0 1 02/28/2026
5.1.0-beta.104532 1 02/28/2026
5.1.0-beta.18822 1 02/28/2026
5.0.3 1 02/28/2026
5.0.3-beta.11921 1 02/28/2026
5.0.2 1 02/28/2026
5.0.2-beta.11265 1 02/28/2026
5.0.1 1 02/28/2026
5.0.1-beta.105682 1 02/28/2026
5.0.0 1 02/28/2026
4.5.4-beta.11277 1 02/28/2026
4.5.3 1 02/28/2026
4.5.2 1 02/28/2026
4.5.1 1 02/28/2026
4.5.0 1 02/28/2026
4.0.3 1 02/28/2026
4.0.1 1 02/28/2026
4.0.0 1 02/28/2026
3.1.3 1 02/28/2026
3.1.1.9498 1 02/28/2026