public long GetLatestVersion()
 {
     using (var connection = _connectionProvider.CreateVrConnection())
     {
         return(connection.GetTable <Version.ValidationResult>().Max(x => x.VersionId));
     }
 }
Esempio n. 2
0
        public PersistentTableStoreFactory(IEqualityComparerFactory equalityComparerFactory,
                                           MappingSchema webAppMappingSchema, IDataConnectionProvider connectionProvider)
        {
            _equalityComparerFactory = equalityComparerFactory;

            _connection = connectionProvider.CreateVrConnection()
                          .AddMappingSchema(webAppMappingSchema);

            // чтобы параллельные запуски single-проверок не накладывали блокировки на webapp-таблицы и не ждали друг друга
            // запускаем single-проверки в транзакции с режимом snapshot, который не накладывает никаких блокировок
            _connection.BeginTransaction(System.Data.IsolationLevel.Snapshot);
        }
Esempio n. 3
0
        private IReadOnlyDictionary <Reference, string> Resolve(IEnumerable <Reference> references)
        {
            var searchKeys = references.Select(x => new { x.Id, x.EntityType });

            // Есть сущности, общие для всех инсталляций - их имена имеют TenantId = 0;
            var tenants = new Tenant[] { 0, _tenantProvider.Current };

            using (var connection = _connectionProvider.CreateVrConnection())
            {
                return(connection
                       .GetTable <EntityName>()
                       .Where(x => tenants.Contains(x.TenantId))
                       .Where(x => searchKeys.Contains(new { x.Id, x.EntityType }))
                       .ToDictionary(x => new Reference(x.EntityType, x.Id), x => x.Name));
            }
        }