/// <summary> /// Creates streaming user. /// </summary> /// <param name="userName">User name string.</param> /// <param name="password">Password string.</param> /// <returns></returns> public bool CreateUser(string userName, string password) { var userNameValidation = new Regex("[a-z,A-Z,0-9,_!@#$%^&*]{4,32}", RegexOptions.Compiled | RegexOptions.Singleline); if (string.IsNullOrEmpty(userName) || !userNameValidation.IsMatch(userName, 0) || string.IsNullOrEmpty(password) || password.Length < 6) { throw new InvalidOperationException(@"Invalid username, allowed characters are 'a-z,A-Z,0-9,_!@#$%^&*' and length between 4 and 32 !"); } if (string.IsNullOrEmpty(password) || password.Length < 6) { throw new InvalidOperationException(@"Invalid password, minimum 6 characters !"); } var user = (from su in _dataContext.Get <StreamingUser>() where su.UserName == userName select su).FirstOrDefault(); if (user != null) { return(false); } user = new StreamingUser(); user.UserName = userName; user.PasswordHash = CryptographyHelper.ComputeHashSHA1($"{userName}_+_{password}{user.PasswordSalt}"); _dataContext.Add(user); _dataContext.SaveChanges(); return(true); }
public void TestMethod1() { var options = new DbContextOptionsBuilder <TestDataContext>() .UseInMemoryDatabase(databaseName: "Add_writes_to_database") .Options; using (var context = new TestDataContext(options)) { var streamingUser = new StreamingUser() { UserName = "******", PasswordSalt = "testUser" + Guid.NewGuid().ToString(), }; var streamingUser1 = new StreamingUser() { UserName = "******", PasswordSalt = "testUser1" + Guid.NewGuid().ToString(), }; var streamingUser2 = new StreamingUser() { UserName = "******", PasswordSalt = "testUser2" + Guid.NewGuid().ToString(), }; // Add new entity. context.Add(streamingUser); context.AddRange(new[] { streamingUser1, streamingUser2 }.ToList <StreamingUser>()); context.SaveChanges(); var q = from su in context.Get <StreamingUser>() where su.Id == streamingUser.Id || su.Id == streamingUser1.Id || su.Id == streamingUser2.Id select su; Console.WriteLine("IDataContext addnew test"); Assert.IsTrue(q.Count() == 3); // Update entity. streamingUser.UserName = "******"; context.Update(streamingUser); streamingUser1.UserName = "******"; context.UpdateRange(new[] { streamingUser1 }.ToList <StreamingUser>()); context.Update <StreamingUser>(x => x.Id == streamingUser2.Id, x => { x.UserName = "******"; }); context.SaveChanges(); var qUpdateCheck = from su in context.Get <StreamingUser>() where su.UserName == "1" || su.UserName == "2" || su.UserName == "3" select su; Console.WriteLine("IDataContext update test"); Assert.IsTrue(qUpdateCheck.Count() == 3); // Delete entry test. context.Delete(streamingUser); context.DeleteRange(new[] { streamingUser1 }.ToList <StreamingUser>()); context.Delete <StreamingUser>(x => x.UserName == "3"); context.SaveChanges(); Console.WriteLine("IDataContext delete test"); Assert.IsTrue(!context.Get <StreamingUser>().Any()); } }