Exemplo n.º 1
0
        /// <summary>
        /// Сохранить изменения в БД асинхронно, при возникновении исключения, сохранить ошибку.
        /// и параметры, вызвавшие исключение.
        /// </summary>
        /// <typeparam name="TLoggedClass">Логируемый класс</typeparam>
        /// <param name="context">Расширяемый класс (DBContext)</param>
        /// <param name="logShortMessage">Сообщение для логгера</param>
        /// <param name="cancellationToken">Токен отмены</param>
        /// <returns></returns>
        internal static async Task <int> SaveChangesAndLogErrorAsync <TLoggedClass>(this IDBSource context,
                                                                                    LogShortMessage logShortMessage, CancellationToken cancellationToken) where TLoggedClass : class
        {
            ILogger <TLoggedClass>       logger        = MKKContext.LoggerFactory.CreateLogger <TLoggedClass>();
            LoggedMessage <TLoggedClass> loggedMessage =
                new LoggedMessage <TLoggedClass>(logger, logShortMessage.Message, logShortMessage.Params);

            return(await context.SaveChangesAndLogErrorAsync(loggedMessage, cancellationToken));
        }
Exemplo n.º 2
0
        /// <summary>
        /// Сохранить изменения в БД асинхронно, при возникновении исключения, сохранить ошибку.
        /// и параметры, вызвавшие исключение.
        /// </summary>
        /// <typeparam name="TLoggedClass">Логируемый класс</typeparam>
        /// <param name="context">Расширяемый класс (DBContext)</param>
        /// <param name="cancellationToken">Токен отмены</param>
        /// <returns></returns>
        internal static async Task <int> SaveChangesAndLogErrorAsync <TLoggedClass>(this IDBSource context,
                                                                                    CancellationToken cancellationToken) where TLoggedClass : class
        {
            ILogger <TLoggedClass>       logger        = MKKContext.LoggerFactory.CreateLogger <TLoggedClass>();
            LoggedMessage <TLoggedClass> loggedMessage =
                new LoggedMessage <TLoggedClass>(logger, "Ошибка внесения изменений в БД.");

            return(await context.SaveChangesAndLogErrorAsync <TLoggedClass>(loggedMessage, cancellationToken));
        }