using System; using System.Collections.Generic; using System.Data; using System.Data.SqlClient; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Taloyhtio.CustomFBADataSource.CodeFiles { public class CredentialsRepository { private string connString; private SqlConnection connection = null; public CredentialsRepository(string connString) { this.connString = connString; } private SqlConnection Connection { get { if (this.connection == null && !string.IsNullOrEmpty(this.connString)) { this.connection = new SqlConnection(this.connString); } if (this.connection != null && !this.connection.State.Equals(ConnectionState.Open)) { this.connection.Open(); } return this.connection; } } public Guid GetUserId(string username) { Guid result = Guid.Empty; string sql = "SELECT UserId FROM [aspnet_Users] WHERE LoweredUserName = @username"; using (var cmd = Connection.CreateCommand()) { cmd.CommandText = sql; cmd.Parameters.AddWithValue("@username", username.ToLowerInvariant()); using (var reader = cmd.ExecuteReader()) { if (reader.Read()) { result = Guid.Parse(reader["UserId"].ToString()); } } } return result; } public List GetUserCondos(Guid userId) { var result = new List(); string sql = "SELECT c.PmcId, c.Url, c.Title, c.PmcRelativeUrl, uc.SiteId, uc.IsPMCLevelGroup FROM [mdb_RightsRedirect_aspnet_UserCondos] uc INNER JOIN [mdb_RightsRedirect_aspnet_Condos] c ON c.SiteId = uc.SiteId AND c.PmcId = uc.PmcId WHERE uc.UserId = @userId ORDER BY c.Url"; using (var cmd = Connection.CreateCommand()) { cmd.CommandText = sql; cmd.Parameters.AddWithValue("@userId", userId); using (var reader = cmd.ExecuteReader()) { while (reader.Read()) { result.Add(new CondoInfo { Id = Guid.Parse(reader["SiteId"].ToString()), PmcId = Guid.Parse(reader["PmcId"].ToString()), Url = reader["Url"].ToString(), Title = reader["Title"].ToString(), PmcRelativeUrl = reader["PmcRelativeUrl"].ToString() }); } } } return result; } } }