protected override ValidationResult IsValid(object value, ValidationContext validationContext) { bool IsPhoneTaken(string phone) { MysqlConnectionProvider dbConnection = new MysqlConnectionProvider(); dbConnection.CreateQuery("SELECT COUNT(*) AS \"COUNTER\" FROM users WHERE phone='" + phone + "'"); MySqlDataReader reader = dbConnection.DoQuery(); string counter = ""; while (reader.Read()) { counter = reader["COUNTER"].ToString(); } dbConnection.Dispose(); return(!counter.Equals("0")); } if (value != null) { if (IsPhoneTaken(value.ToString())) { return(new ValidationResult(ErrorMessage = "Phone Taken")); } } return(ValidationResult.Success); }
public ListenerGetInfoModel GetListenerInfo(string Id) { MysqlConnectionProvider dbConnection = new MysqlConnectionProvider(); dbConnection.CreateQuery("SELECT username,email,phone FROM users WHERE id='" + Id + "'"); ListenerGetInfoModel listenerGetInfoModel = null; MySqlDataReader reader = dbConnection.DoQuery(); while (reader.Read()) { listenerGetInfoModel = new ListenerGetInfoModel(); listenerGetInfoModel.Username = reader["username"].ToString(); listenerGetInfoModel.Email = reader["email"].ToString(); listenerGetInfoModel.Phone = reader["phone"].ToString(); } dbConnection.Dispose(); dbConnection = null; var collection = new MongodbConnectionProvider().GeShantyDatabase().GetCollection <BsonDocument>("listeners"); var builder = Builders <BsonDocument> .Filter; var filter = builder.Eq("ListenerId", Id); var result = collection.Find(filter).FirstOrDefault(); if (result != null) { ListenerGetInfoModel res = BsonSerializer.Deserialize <ListenerGetInfoModel>(result); listenerGetInfoModel.ListenerId = res.ListenerId; listenerGetInfoModel.ProfileImageUrl = res.ProfileImageUrl; listenerGetInfoModel.FirstName = res.FirstName; listenerGetInfoModel.LastName = res.LastName; listenerGetInfoModel.Dob = res.Dob; listenerGetInfoModel.Region = res.Region; listenerGetInfoModel.IsSubscriber = res.IsSubscriber; } return(listenerGetInfoModel); }
public LabelGetInfoModel GetLabelInfo(string Id) { MysqlConnectionProvider dbConnection = new MysqlConnectionProvider(); dbConnection.CreateQuery("SELECT username,email,phone FROM users WHERE id='" + Id + "'"); LabelGetInfoModel labelGetInfoModel = null; MySqlDataReader reader = dbConnection.DoQuery(); while (reader.Read()) { labelGetInfoModel = new LabelGetInfoModel(); labelGetInfoModel.Username = reader["username"].ToString(); labelGetInfoModel.Email = reader["email"].ToString(); labelGetInfoModel.Phone = reader["phone"].ToString(); } dbConnection.Dispose(); dbConnection = null; var collection = new MongodbConnectionProvider().GeShantyDatabase().GetCollection <BsonDocument>("labels"); var builder = Builders <BsonDocument> .Filter; var filter = builder.Eq("LabelId", Id); var result = collection.Find(filter).FirstOrDefault(); if (result != null) { LabelGetInfoModel res = BsonSerializer.Deserialize <LabelGetInfoModel>(result); labelGetInfoModel.LabelId = res.LabelId; labelGetInfoModel.LabelIconUrl = res.LabelIconUrl; labelGetInfoModel.LabelName = res.LabelName; labelGetInfoModel.EstDate = res.EstDate; labelGetInfoModel.IsVerified = res.IsVerified; labelGetInfoModel.Region = res.Region; } return(labelGetInfoModel); }
public void QuotesNames() { var connectionProvider = new MysqlConnectionProvider(); var schemaDataProvider = new MysqlSchemaDataProvider50(connectionProvider); var unquoted = "unquoted"; var quoted = schemaDataProvider.QuoteObjectName(unquoted); Assert.AreEqual("`" + unquoted + "`", quoted); }
public void SelectsExpectedSchemaDataProvider() { var connectionProvider = new MysqlConnectionProvider(); connectionProvider.SetConnectionString(ConnectionString); var expectedSchemaProvider = GetExpectedSchemaProvider(connectionProvider); var selectedSchemaProvider = connectionProvider.GetSchemaProvider(); //Need to figure out something more elegant here, but so far the implementation of quoting //separates the to strategies quite ok. Assert.AreEqual(expectedSchemaProvider.QuoteObjectName("name"), selectedSchemaProvider.QuoteObjectName("name")); }
public void DoesNotQuoteNames() { var connectionprovider = new MysqlConnectionProvider(); connectionprovider.SetConnectionString(ConnectionString); var schemaDataProvider = new MysqlSchemaDataProvider40(connectionprovider); var unquoted = "Unquoted"; var quoted = schemaDataProvider.QuoteObjectName(unquoted); Assert.AreEqual(unquoted, quoted); }
public bool ResetChangePassword(string id, string pass) { MysqlConnectionProvider dbConnection = new MysqlConnectionProvider(); dbConnection.CreateQuery("UPDATE users SET pass='******' WHERE id='" + id + "'"); if ((dbConnection.DoNoQuery()) < 1) { dbConnection.Dispose(); return(false); } dbConnection.Dispose(); return(true); }
public bool VerifyEmail(string id) { MysqlConnectionProvider dbConnection = new MysqlConnectionProvider(); dbConnection.CreateQuery("UPDATE users SET isemailverified='true' WHERE id='" + id + "'"); if ((dbConnection.DoNoQuery()) < 1) { dbConnection.Dispose(); return(false); } dbConnection.Dispose(); return(true); }
//RESET OR CHANGE PASSWORD public string SendOtpForPassReset(string otp, string email) { bool IsEmailTaken(string email) { MysqlConnectionProvider dbConnection = new MysqlConnectionProvider(); dbConnection.CreateQuery("SELECT COUNT(*) AS \"COUNTER\" FROM users WHERE email='" + email + "'"); MySqlDataReader reader = dbConnection.DoQuery(); string counter = ""; while (reader.Read()) { counter = reader["COUNTER"].ToString(); } dbConnection.Dispose(); return(!counter.Equals("0")); } if (!IsEmailTaken(email)) { return("Email Not Found"); } SendgridEmailProvider sendgridEmailProvider = new SendgridEmailProvider(); sendgridEmailProvider.Send("*****@*****.**", "Shanty", email, "User", "Shanty - OTP", "OTP for Password Reset", "<strong>OTP: " + otp + "</strong>"); MysqlConnectionProvider dbConnection = new MysqlConnectionProvider(); dbConnection.CreateQuery("SELECT id,isemailverified FROM users WHERE email='" + email + "'"); UserLoginResponseModel userLoginResponseModel = null; string isEmailVerified = ""; MySqlDataReader reader = dbConnection.DoQuery(); while (reader.Read()) { userLoginResponseModel = new UserLoginResponseModel(); userLoginResponseModel.Id = reader["id"].ToString(); isEmailVerified = reader["isemailverified"].ToString(); } dbConnection.Dispose(); dbConnection = null; if (userLoginResponseModel != null) { if (isEmailVerified == "false") { return("Email Not Verified"); } return(new JwtAuthenticationProvider().GenerateJsonWebToken(userLoginResponseModel)); } return(""); }
//MATCH PASSWORD public bool MatchPassword(string id, string pass) { MysqlConnectionProvider dbConnection = new MysqlConnectionProvider(); dbConnection.CreateQuery("SELECT pass FROM users WHERE id='" + id + "'"); MySqlDataReader reader = dbConnection.DoQuery(); string dbPass = ""; while (reader.Read()) { dbPass = reader["pass"].ToString(); } dbConnection.Dispose(); return(BCrypt.Net.BCrypt.Verify(pass, dbPass)); }
public bool IsLabelOrArtist(string id) { MysqlConnectionProvider dbConnection = new MysqlConnectionProvider(); dbConnection.CreateQuery("SELECT * FROM users WHERE id='" + id + "' AND type='label' OR type='artist'"); MySqlDataReader reader = dbConnection.DoQuery(); if (reader.Read()) { return(true); } dbConnection.Dispose(); dbConnection = null; return(false); }
public string GetUserType(string id) { MysqlConnectionProvider dbConnection = new MysqlConnectionProvider(); dbConnection.CreateQuery("SELECT type FROM users WHERE id='" + id + "'"); MySqlDataReader reader = dbConnection.DoQuery(); if (reader.Read()) { return(reader["type"].ToString()); } dbConnection.Dispose(); dbConnection = null; return(""); }
public void ColumnDataShouldBeCached() { var table = new Table("Users", null, TableType.Table); var realConnectionProvider = new MysqlConnectionProvider(); realConnectionProvider.SetConnectionString(ConnectionString); var proxiedConnectionProvider = A.Fake <IConnectionProvider>((o) => o.Wrapping(realConnectionProvider)); var schemaDataProvider = new MysqlSchemaDataProvider40(proxiedConnectionProvider); Enumerable.ToList(schemaDataProvider.GetColumnsFor(table)); Enumerable.ToList(schemaDataProvider.GetColumnsFor(table)); Enumerable.ToList(schemaDataProvider.GetColumnsFor(table)); Enumerable.ToList(schemaDataProvider.GetColumnsFor(table)); A.CallTo(() => proxiedConnectionProvider.CreateConnection()).MustHaveHappened(Repeated.Exactly.Once); }
//ARTIST REGISTRATION public bool RegisterArtist(ArtistGlobalModel artist) { bool InsertArtistMysql() { MysqlConnectionProvider dbConnection = new MysqlConnectionProvider(); dbConnection.CreateQuery("INSERT INTO users(id, username, email, phone, pass, type, isemailverified) VALUES ('" + artist.Id + "','" + artist.Username + "','" + artist.Email + "','" + artist.Phone + "','" + artist.Pass + "','" + artist.Type + "','" + artist.IsEmailVerified + "')"); if ((dbConnection.DoNoQuery()) < 1) { dbConnection.Dispose(); return(false); } dbConnection.Dispose(); return(true); } bool InsertArtistMongo() { try { var collection = new MongodbConnectionProvider().GeShantyDatabase().GetCollection <BsonDocument>("artists"); var document = new BsonDocument { { "ArtistId", artist.Id }, { "ProfileImageUrl", artist.ProfileImageUrl }, { "FirstName", artist.FirstName }, { "LastName", artist.LastName }, { "Dob", artist.Dob }, { "Region", artist.Region }, { "LabelId", artist.LabelId }, { "IsVerified", artist.IsVerified } }; collection.InsertOne(document); return(true); } catch (Exception) { return(false); } } return(InsertArtistMysql() && InsertArtistMongo()); }
//LISTENER REGISTRATION public bool RegisterListener(ListenerGlobalModel listener) { bool InsertListenerMysql() { MysqlConnectionProvider dbConnection = new MysqlConnectionProvider(); dbConnection.CreateQuery("INSERT INTO users(id, username, email, phone, pass, type, isemailverified) VALUES ('" + listener.Id + "','" + listener.Username + "','" + listener.Email + "','" + listener.Phone + "','" + listener.Pass + "','" + listener.Type + "','" + listener.IsEmailVerified + "')"); if ((dbConnection.DoNoQuery()) < 1) { dbConnection.Dispose(); return(false); } dbConnection.Dispose(); return(true); } bool InsertListenerMongo() { try { var collection = new MongodbConnectionProvider().GeShantyDatabase().GetCollection <BsonDocument>("listeners"); var document = new BsonDocument { { "ListenerId", listener.Id }, { "ProfileImageUrl", listener.ProfileImageUrl }, { "FirstName", listener.FirstName }, { "LastName", listener.LastName }, { "Dob", listener.Dob }, { "Region", listener.Region }, { "IsSubscriber", listener.IsSubscriber } }; collection.InsertOne(document); return(true); } catch (Exception) { return(false); } } return(InsertListenerMysql() && InsertListenerMongo()); }
public void CanProvideAllColumnsFromTable() { var table = new Table("users", null, TableType.Table); var expectedColumns = new List <Column> { new Column("Id", table, true, DbType.Int32, 11), new Column("Name", table, false, DbType.String, 255), new Column("Password", table, false, DbType.String, 255), new Column("Age", table, false, DbType.Int32, 11) }; var connectionProvider = new MysqlConnectionProvider(); connectionProvider.SetConnectionString(ConnectionString); var schemaDataProvider = new MysqlSchemaDataProvider40(connectionProvider); var columns = schemaDataProvider.GetColumnsFor(table).Select(c => new Column(c.Name, table, c.IsAutoincrement, c.DbType, c.Capacity)); Assert.AreEqual(expectedColumns.Count, columns.Count()); columns.Should().Contain(expectedColumns); }
//LABEL REGISTRTION public bool RegisterLabel(LabelGlobalModel label) { bool InsertLabelMysql() { MysqlConnectionProvider dbConnection = new MysqlConnectionProvider(); dbConnection.CreateQuery("INSERT INTO users(id, username, email, phone, pass, type, isemailverified) VALUES ('" + label.Id + "','" + label.Username + "','" + label.Email + "','" + label.Phone + "','" + label.Pass + "','" + label.Type + "','" + label.IsEmailVerified + "')"); if ((dbConnection.DoNoQuery()) < 1) { dbConnection.Dispose(); return(false); } dbConnection.Dispose(); return(true); } bool InsertLabelMongo() { try { var collection = new MongodbConnectionProvider().GeShantyDatabase().GetCollection <BsonDocument>("labels"); var document = new BsonDocument { { "LabelId", label.Id }, { "LabelIconUrl", label.LabelIconUrl }, { "LabelName", label.LabelName }, { "EstDate", label.EstDate }, { "Region", label.Region }, { "IsVerified", label.IsVerified } }; collection.InsertOne(document); return(true); } catch (Exception) { return(false); } } return(InsertLabelMysql() && InsertLabelMongo()); }
public void CanGetTables() { var expectedTables = new List <Table> { new Table("customers", null, TableType.Table), new Table("items", null, TableType.Table), new Table("items_fk_test", null, TableType.Table), new Table("orderitems_fk_test", null, TableType.Table), new Table("orderitems", null, TableType.Table), new Table("orders", null, TableType.Table), new Table("orders_fk_test", null, TableType.Table), new Table("users", null, TableType.Table) }; var connectionProvider = new MysqlConnectionProvider(); connectionProvider.SetConnectionString(ConnectionString); var schemaDataProvider = new MysqlSchemaDataProvider40(connectionProvider); var tables = schemaDataProvider.GetTables(); tables.Should().Contain(expectedTables); }
//USER LOGIN public string LoginUser(string email, string pass) { MysqlConnectionProvider dbConnection = new MysqlConnectionProvider(); dbConnection.CreateQuery("SELECT id,pass,isemailverified FROM users WHERE email='" + email + "'"); UserLoginResponseModel userLoginResponseModel = null; string passFromDb = ""; string isEmailVerified = ""; MySqlDataReader reader = dbConnection.DoQuery(); while (reader.Read()) { userLoginResponseModel = new UserLoginResponseModel(); userLoginResponseModel.Id = reader["id"].ToString(); passFromDb = reader["pass"].ToString(); isEmailVerified = reader["isemailverified"].ToString(); } dbConnection.Dispose(); dbConnection = null; if (userLoginResponseModel != null) { if (BCrypt.Net.BCrypt.Verify(pass, passFromDb)) { if (isEmailVerified == "false") { return("Email Not Verified"); } return(new JwtAuthenticationProvider().GenerateJsonWebToken(userLoginResponseModel)); } else { return(""); } } return(""); }
public ArtistGetInfoModel GetArtistInfo(string Id) { MysqlConnectionProvider dbConnection = new MysqlConnectionProvider(); dbConnection.CreateQuery("SELECT username,email,phone FROM users WHERE id='" + Id + "'"); ArtistGetInfoModel artistGetInfoModel = null; MySqlDataReader reader = dbConnection.DoQuery(); while (reader.Read()) { artistGetInfoModel = new ArtistGetInfoModel(); artistGetInfoModel.Username = reader["username"].ToString(); artistGetInfoModel.Email = reader["email"].ToString(); artistGetInfoModel.Phone = reader["phone"].ToString(); } dbConnection.Dispose(); dbConnection = null; var collection = new MongodbConnectionProvider().GeShantyDatabase().GetCollection <BsonDocument>("artists"); var builder = Builders <BsonDocument> .Filter; var filter = builder.Eq("ArtistId", Id); var result = collection.Find(filter).FirstOrDefault(); if (result != null) { ArtistGetInfoModel res = BsonSerializer.Deserialize <ArtistGetInfoModel>(result); artistGetInfoModel.ArtistId = res.ArtistId; artistGetInfoModel.ProfileImageUrl = res.ProfileImageUrl; artistGetInfoModel.FirstName = res.FirstName; artistGetInfoModel.LastName = res.LastName; artistGetInfoModel.Dob = res.Dob; artistGetInfoModel.Region = res.Region; artistGetInfoModel.IsVerified = res.IsVerified; artistGetInfoModel.LabelId = res.LabelId; } return(artistGetInfoModel); }
public AlbumDataAccess() { dbConnection = new MysqlConnectionProvider(); }