Перейти к основному контенту

CounterManager

public class CounterManager : EntityManager<ICOCounter, long>
{
    /// <summary>
    /// instance
    /// </summary>
    public new static CounterManager Instance => Locator.GetServiceNotNull<CounterManager>();

    /// <summary>
    /// Загрузить или создать новый
    /// </summary>
    /// <param name="uid">Уникальный идентификатор счетчика</param>
    /// <param name="name">Название</param>
    /// <param name="mask">Маска в формате string.Format</param>
    /// <returns></returns>
    public ICOCounter LoadOrCreate(Guid uid, string name = null, string mask = null);

    /// <summary>
    /// Получить новое значение по максе
    /// </summary>
    /// <param name="counter">Счетчик</param>
    /// <param name="save">Сохранить в базе</param>
    /// <param name="checkYear">Сбросить для нового года</param>
    /// <param name="args">Дополнительные аргшуметы для маски</param>
    /// <returns></returns>
    /// <exception cref="Exception"></exception>
    public string FormatNewValue(ICOCounter counter, bool save = true, bool checkYear = false, params object[] args);

    /// <summary>
    /// Получить новое значение
    /// </summary>
    /// <param name="counter">Счетчик</param>
    /// <param name="save">Сохранить в базе</param>
    /// <param name="checkYear">Сбросить для нового года</param>
    /// <returns></returns>
    /// <exception cref="ArgumentException"></exception>
    [Transaction]
    public virtual long GetNewId(ICOCounter counter, bool save = true, bool checkYear = false);
}