|  | 
| 13 | 13 | using Xtensive.Orm; | 
| 14 | 14 | using Xtensive.Sql.Info; | 
| 15 | 15 | using Xtensive.Sql.Drivers.PostgreSql.Resources; | 
| 16 |  | -using System.Reflection; | 
| 17 | 16 | 
 | 
| 18 | 17 | namespace Xtensive.Sql.Drivers.PostgreSql | 
| 19 | 18 | { | 
| @@ -215,56 +214,13 @@ private static bool SetOrGetExistingLegacyTimeStampBehaviorSwitch(bool valueToSe | 
| 215 | 214 | 
 | 
| 216 | 215 |     private static bool GetSwitchValueOrSet(string switchName, bool valueToSet) | 
| 217 | 216 |     { | 
| 218 |  | -      using (var logWriter = CreateFile(switchName)) { | 
| 219 |  | -        logWriter?.WriteLine($"GetSwitchValueOrSet called for switch '{switchName}' in attempt to set it to {valueToSet}"); | 
| 220 |  | -        if (!AppContext.TryGetSwitch(switchName, out var currentValue)) { | 
| 221 |  | -          logWriter?.WriteLine($"Switch '{switchName}' is not set to any value at the moment, setting it to {valueToSet}"); | 
| 222 |  | -          AppContext.SetSwitch(switchName, valueToSet); | 
| 223 |  | -          logWriter?.WriteLine($"Switch '{switchName}' is set to {valueToSet}"); | 
| 224 |  | -          return valueToSet; | 
| 225 |  | -        } | 
| 226 |  | -        else { | 
| 227 |  | -          logWriter?.WriteLine($"Switch '{switchName}' is already set to value {currentValue}. Setting to {valueToSet} skipped"); | 
| 228 |  | -          return currentValue; | 
| 229 |  | -        } | 
| 230 |  | -      } | 
| 231 |  | -    } | 
| 232 |  | - | 
| 233 |  | -    private static System.IO.TextWriter CreateFile(string switchName) | 
| 234 |  | -    { | 
| 235 |  | -      //F:\Projects\DataObjects.Net\Main Projects\do-public\new-master\_Build\tests\Debug\lib\net6.0 | 
| 236 |  | -      var runningDirectory = System.IO.Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); | 
| 237 |  | -      if (!runningDirectory.Contains("_Build/tests") && !runningDirectory.Contains(@"_Build\tests")) { | 
| 238 |  | -        return null; | 
|  | 217 | +      if (!AppContext.TryGetSwitch(switchName, out var currentValue)) { | 
|  | 218 | +        AppContext.SetSwitch(switchName, valueToSet); | 
|  | 219 | +        return valueToSet; | 
| 239 | 220 |       } | 
| 240 |  | - | 
| 241 |  | -      var dirInfo = new System.IO.DirectoryInfo(runningDirectory); | 
| 242 |  | -      var dotnetName = dirInfo.Name; //net6.0 | 
| 243 |  | -      var libFolder = dirInfo.Parent; // lib | 
| 244 |  | -      var buildConfigFolder = libFolder.Parent;//Debug/Release | 
| 245 |  | - | 
| 246 |  | -      var tempFilesFolder = buildConfigFolder.CreateSubdirectory(dotnetName); | 
| 247 |  | -      var fileToWrite = System.IO.File.CreateText(System.IO.Path.Combine(tempFilesFolder.FullName, $"Switch_{switchName.Replace('.', '_')}_{InstanceIdentifier}.log")); | 
| 248 |  | -      return fileToWrite; | 
| 249 |  | -    } | 
| 250 |  | - | 
| 251 |  | -    private static System.IO.TextWriter CreateFile() | 
| 252 |  | -    { | 
| 253 |  | -      //F:\Projects\DataObjects.Net\Main Projects\do-public\new-master\_Build\tests\Debug\lib\net6.0 | 
| 254 |  | -      var runningDirectory = System.IO.Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); | 
| 255 |  | -      if (!runningDirectory.Contains($"_Build{System.IO.Path.DirectorySeparatorChar}tests") | 
| 256 |  | -          && !runningDirectory.Contains($"_Build{System.IO.Path.AltDirectorySeparatorChar}tests")) { | 
| 257 |  | -        return null; | 
|  | 221 | +      else { | 
|  | 222 | +        return currentValue; | 
| 258 | 223 |       } | 
| 259 |  | - | 
| 260 |  | -      var dirInfo = new System.IO.DirectoryInfo(runningDirectory); | 
| 261 |  | -      var dotnetName = dirInfo.Name; //net6.0 | 
| 262 |  | -      var libFolder = dirInfo.Parent; // lib | 
| 263 |  | -      var buildConfigFolder = libFolder.Parent;//Debug/Release | 
| 264 |  | - | 
| 265 |  | -      var tempFilesFolder = buildConfigFolder.CreateSubdirectory(dotnetName); | 
| 266 |  | -      var fileToWrite = System.IO.File.CreateText(System.IO.Path.Combine(tempFilesFolder.FullName, $"CtorCall_{InstanceIdentifier}.log")); | 
| 267 |  | -      return fileToWrite; | 
| 268 | 224 |     } | 
| 269 | 225 | 
 | 
| 270 | 226 |     #endregion | 
| @@ -301,12 +257,6 @@ static DriverFactory() | 
| 301 | 257 | 
 | 
| 302 | 258 |       // DO NOT REPLACE method call with constant value when debugging, CHANGE THE PARAMETER VALUE. | 
| 303 | 259 |       LegacyTimestamptBehaviorEnabled = SetOrGetExistingLegacyTimeStampBehaviorSwitch(valueToSet: false); | 
| 304 |  | - | 
| 305 |  | -      using(var logWriter = CreateFile()) { | 
| 306 |  | -        logWriter.WriteLine($"Driver factory was initialized with"); | 
| 307 |  | -        logWriter.WriteLine($"      InfinityAliasForDatesEnabled = {InfinityAliasForDatesEnabled}"); | 
| 308 |  | -        logWriter.WriteLine($"      LegacyTimestamptBehaviorEnabled = {LegacyTimestamptBehaviorEnabled}"); | 
| 309 |  | -      } | 
| 310 | 260 |     } | 
| 311 | 261 |   } | 
| 312 | 262 | } | 
0 commit comments