void ICredentialsProvider.Save(ServerCredentials credentials) { if (credentials is null) { throw new ArgumentNullException(nameof(credentials)); } lock (this) { var clone = credentials.Clone(); if (!clone.AutoLogon) { clone.Password = null; } Directory.CreateDirectory(Paths.CompanyPath); var file = Path.Combine(Paths.CompanyPath, _credentialsFile); clone.Save().Serialize(file); _credentials = clone; } }
// ReSharper restore InconsistentlySynchronizedField bool ICredentialsProvider.TryLoad(out ServerCredentials credentials) { lock (this) { if (_credentials != null) { credentials = _credentials.Clone(); return(IsValid); } var file = Path.Combine(Paths.CompanyPath, _credentialsFile); credentials = null; try { if (File.Exists(file) || File.Exists(file.MakeLegacy())) { credentials = new ServerCredentials(); credentials.LoadIfNotNull(file.DeserializeWithMigration <SettingsStorage>()); _credentials = credentials.Clone(); } } catch (Exception ex) { ex.LogError(); } return(IsValid); } }