public static async Task <User> InsertUser(User user, string password) { SaltHashPair shp = Security.CreateSaltAndHash(password); UserDataModel udm = new UserDataModel(); DateTime d = DateTime.UtcNow; udm.UserId = Guid.NewGuid(); udm.Email = user.Email; udm.AdminComment = "Created By Couture Shock API"; udm.PasswordSalt = shp.Salt; udm.PasswordHash = shp.Hash; udm.Active = true; udm.IsSystemAccount = false; udm.SystemName = "CSHOCK API"; if (user.LastIpAddress != null) { udm.LastIpAddress = user.LastIpAddress; } else { udm.LastIpAddress = "n/a"; } udm.CreatedOnUtc = d; udm.CreatedBy = "CS.API"; udm.UpdatedBy = "CS.API"; udm.UpdatedOnUtc = d; udm.AccessFailedCount = 0; using (var conn = Business.Database.Connection) { var newUsers = await conn.QueryAsync <User>("UserInsert", new { udm.UserId, udm.Email, udm.AdminComment, udm.PasswordSalt, udm.PasswordHash, udm.Active, udm.IsSystemAccount, udm.SystemName, udm.LastIpAddress, udm.CreatedOnUtc, udm.CreatedBy, udm.UpdatedBy, udm.UpdatedOnUtc, udm.AccessFailedCount }, commandType : CommandType.StoredProcedure); if (newUsers.Count() > 0) { return(newUsers.AsList()[0]); } return(null); } }
public static async Task <User> UpdateUser(User user, string password) { try { SaltHashPair shp = Security.CreateSaltAndHash(password); UserDataModel udm = new UserDataModel(); DateTime d = DateTime.UtcNow; udm.UserId = user.UserId; udm.AdminComment = "Password Updated On: " + d.ToString(); udm.PasswordSalt = shp.Salt; udm.PasswordHash = shp.Hash; udm.Active = user.IsActive; udm.IsSystemAccount = false; udm.SystemName = "CSHOCK API"; if (user.LastIpAddress != null) { udm.LastIpAddress = user.LastIpAddress; } else { udm.LastIpAddress = "n/a"; } udm.UpdatedBy = "CS.API"; udm.UpdatedOnUtc = d; udm.AccessFailedCount = 0; using (var conn = Business.Database.Connection) { var newUsers = await conn.QueryAsync <User>("UserUpdate", new { udm.UserId, udm.AdminComment, udm.PasswordSalt, udm.PasswordHash, udm.Active, udm.SystemName, udm.LastIpAddress, udm.UpdatedBy, udm.UpdatedOnUtc, udm.AccessFailedCount }, commandType : CommandType.StoredProcedure); if (newUsers.Count() > 0) { return(newUsers.AsList()[0]); } return(null); } } catch (Exception ex) { Console.WriteLine(ex.Message); return(null); } }
public static async Task <User> InsertUser(User user, string password) { SaltHashPair shp = Security.CreateSaltAndHash(password); UserDataModel udm = new UserDataModel(); DateTime d = DateTime.UtcNow; udm.UserId = Guid.NewGuid(); udm.Email = user.Email; udm.AdminComment = "This is a test account"; udm.PasswordSalt = shp.Salt; udm.PasswordHash = shp.Hash; udm.Active = true; udm.IsSystemAccount = true; udm.SystemName = "Test System"; udm.LastIpAddress = "100.111.111.12"; udm.CreatedOnUtc = d; udm.CreatedBy = "Admin"; udm.UpdatedBy = "Admin"; udm.UpdatedOnUtc = d; udm.AccessFailedCount = 0; using (var conn = Business.Database.Connection) { var newUsers = await conn.QueryAsync <User>("UserInsert", new { udm.UserId, udm.Email, udm.AdminComment, udm.PasswordSalt, udm.PasswordHash, IsActive = true, IsSystemAccount = false, SystemName = "Test System", udm.LastIpAddress, CreatedOnUtc = d, udm.CreatedBy, udm.UpdatedBy, UpdatedOnUtc = d, AccessFailedCount = 0 }, commandType : CommandType.StoredProcedure); if (newUsers.Count() > 0) { return(newUsers.AsList()[0]); } return(null); } }