From ee66d64c99b0a400c3824068199a01b302d9dd22 Mon Sep 17 00:00:00 2001 From: Matt Gibson Date: Thu, 24 Jun 2021 15:31:03 -0400 Subject: [PATCH] Avoid sql connection timeout (#1409) * Read known emails to memory so we can close connection. * Use ICollection as return * Fix null reference if ip and date aren't set --- src/Core/Repositories/IOrganizationUserRepository.cs | 2 +- src/Core/Repositories/SqlServer/EventRepository.cs | 4 ++-- src/Core/Repositories/SqlServer/OrganizationUserRepository.cs | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Core/Repositories/IOrganizationUserRepository.cs b/src/Core/Repositories/IOrganizationUserRepository.cs index e2d29d20bf..19515a2428 100644 --- a/src/Core/Repositories/IOrganizationUserRepository.cs +++ b/src/Core/Repositories/IOrganizationUserRepository.cs @@ -15,7 +15,7 @@ namespace Bit.Core.Repositories Task> GetManyByUserAsync(Guid userId); Task> GetManyByOrganizationAsync(Guid organizationId, OrganizationUserType? type); Task GetCountByOrganizationAsync(Guid organizationId, string email, bool onlyRegisteredUsers); - Task> SelectKnownEmailsAsync(Guid organizationId, IEnumerable emails, bool onlyRegisteredUsers); + Task> SelectKnownEmailsAsync(Guid organizationId, IEnumerable emails, bool onlyRegisteredUsers); Task GetByOrganizationAsync(Guid organizationId, Guid userId); Task>> GetByIdWithCollectionsAsync(Guid id); Task GetDetailsByIdAsync(Guid id); diff --git a/src/Core/Repositories/SqlServer/EventRepository.cs b/src/Core/Repositories/SqlServer/EventRepository.cs index b2f114288a..dffe3915ea 100644 --- a/src/Core/Repositories/SqlServer/EventRepository.cs +++ b/src/Core/Repositories/SqlServer/EventRepository.cs @@ -164,9 +164,9 @@ namespace Bit.Core.Repositories.SqlServer eventsTable.Columns.Add(actingUserIdColumn); var deviceTypeColumn = new DataColumn(nameof(e.DeviceType), typeof(int)); eventsTable.Columns.Add(deviceTypeColumn); - var ipAddressColumn = new DataColumn(nameof(e.IpAddress), e.IpAddress.GetType()); + var ipAddressColumn = new DataColumn(nameof(e.IpAddress), typeof(string)); eventsTable.Columns.Add(ipAddressColumn); - var dateColumn = new DataColumn(nameof(e.Date), e.Date.GetType()); + var dateColumn = new DataColumn(nameof(e.Date), typeof(DateTime)); eventsTable.Columns.Add(dateColumn); foreach (DataColumn col in eventsTable.Columns) diff --git a/src/Core/Repositories/SqlServer/OrganizationUserRepository.cs b/src/Core/Repositories/SqlServer/OrganizationUserRepository.cs index 7776daf0cf..86343734c2 100644 --- a/src/Core/Repositories/SqlServer/OrganizationUserRepository.cs +++ b/src/Core/Repositories/SqlServer/OrganizationUserRepository.cs @@ -76,7 +76,7 @@ namespace Bit.Core.Repositories.SqlServer } } - public async Task> SelectKnownEmailsAsync(Guid organizationId, IEnumerable emails, + public async Task> SelectKnownEmailsAsync(Guid organizationId, IEnumerable emails, bool onlyRegisteredUsers) { using (var connection = new SqlConnection(ConnectionString))