public CheckedCustomAuditParameters(
     tExecutionVariant executionResult,
     DateTime currentTime,
     AppMode applicationMode,
     string auditConnectionStringName,
     bool needSerialization)
     : base(executionResult, currentTime, applicationMode, auditConnectionStringName, needSerialization)
 {
 }
Пример #2
0
 public AuditParameters(
     tExecutionVariant executionResult,
     DateTime currentTime,
     AppMode applicationMode,
     string auditConnectionStringName,
     bool needSerialization)
     : base(auditConnectionStringName, applicationMode)
 {
     ExecutionResult   = executionResult;
     CurrentTime       = currentTime;
     NeedSerialization = needSerialization;
 }
Пример #3
0
 /// <summary>
 /// Конструктор класса, который позволяет дописывать определённую информацию в аудит.
 /// </summary>
 /// <param name="executionVariant">Вариант завершения работы аудита.</param>
 /// <param name="currentTime">Текущее время.</param>
 /// <param name="auditOperationInfoList">Информация, которую необходимо дописать в аудит (с указанием идентификаторов записей аудита).</param>
 /// <param name="writeMode">Режим записи: синхронный или асинхронный.</param>
 /// <param name="applicationMode">Режим работы аудита: под win или web.</param>
 /// <param name="auditConnectionStringName">Имя строки соединения с БД, куда идут записи аудита.</param>
 /// <param name="needSerialization">Нужна ли сериализация (на случай передачи по wcf).</param>
 public RatificationAuditParameters(
     tExecutionVariant executionVariant,
     DateTime currentTime,
     List <AuditAdditionalInfo> auditOperationInfoList,
     tWriteMode writeMode,
     AppMode applicationMode,
     string auditConnectionStringName,
     bool needSerialization)
     : base(executionVariant, currentTime, applicationMode, auditConnectionStringName, needSerialization)
 {
     ExecutionResult        = executionVariant;
     CurrentTime            = currentTime;
     AuditOperationInfoList = auditOperationInfoList;
     WriteMode = writeMode;
 }
 public CommonAuditParameters(
     bool needAnswer,
     tExecutionVariant executionResult,
     string operationSource,
     string fullUserLogin,
     string userName,
     DateTime currentTime,
     AppMode applicationMode,
     string auditConnectionStringName,
     bool needSerialization)
     : base(executionResult, currentTime, applicationMode, auditConnectionStringName, needSerialization)
 {
     NeedAnswer      = needAnswer;
     OperationSource = operationSource;
     FullUserLogin   = fullUserLogin;
     UserName        = userName;
 }
        /// <summary>
        /// Подтверждение созданных ранее операций аудита
        ///             (если аудит идёт в одну БД с приложением, то будет использован сервис данных по умолчанию).
        /// </summary>
        /// <param name="executionVariant">Какой статус будет присвоен операции.</param><param name="auditOperationInfoList">Информация о том, что и куда в аудит нужно добавить.</param><param name="dataServiceConnectionString">Строка соединения сервиса данных, который выполняет запись в БД приложения. </param><param name="dataServiceType">Тип сервиса данных, который выполняет запись в БД приложения. </param><param name="throwExceptions">Следует ли пробрасывать дальше возникшее исключение.</param><param name="checkClassAuditSettings">Следует ли проверять настройки аудита самого класса.</param>
        /// <returns>
        /// <c>True</c>, если всё закончилось без ошибок.
        /// </returns>
        protected override bool RatifyAuditOperation(tExecutionVariant executionVariant, List <AuditAdditionalInfo> auditOperationInfoList, string dataServiceConnectionString, Type dataServiceType, bool throwExceptions, bool checkClassAuditSettings = false)
        {
            if (PersistUtcDates)
            {
                try
                {
                    if (AppSetting == null || !AppSetting.AuditEnabled)
                    {
                        throw new DisabledAuditException();
                    }

                    if (auditOperationInfoList != null && auditOperationInfoList.Count > 0)
                    {
                        // Настройки вообще есть и аудит для приложения включён.
                        var auditRatifyParameters = new RatificationAuditParameters(
                            executionVariant,
                            DateTimeOffset.UtcNow.DateTime,
                            auditOperationInfoList,
                            AppSetting.DefaultWriteMode,
                            ApplicationMode,
                            AppSetting.IsDatabaseLocal ? GetConnectionStringName(dataServiceConnectionString, dataServiceType) : AppSetting.AuditConnectionStringName,
                            IsAuditRemote)
                        {
                            ThrowExceptions = throwExceptions
                        };

                        CheckAndSendToAudit(auditRatifyParameters, checkClassAuditSettings);
                    }

                    return(true);
                }
                catch (Exception ex)
                {
                    ErrorProcesser.ProcessAuditError(ex, "AuditService, RatifyAuditOperation", throwExceptions);
                    return(false);
                }
            }

            return(base.RatifyAuditOperation(executionVariant, auditOperationInfoList, dataServiceConnectionString, dataServiceType, throwExceptions, checkClassAuditSettings));
        }