public async Task Start() { var options = new MqttServerOptionsBuilder() .WithConnectionValidator(context => { using (var db = new ChainSawDbContext()) { var user = db.Users.FirstOrDefault(obj => obj.Username == context.Username && obj.PasswordHash == context.Password.HashPassword()); if (user != default(User)) { context.ReturnCode = MqttConnectReturnCode.ConnectionAccepted; } else { context.ReturnCode = MqttConnectReturnCode.ConnectionRefusedBadUsernameOrPassword; } } }) .Build(); await server.StartAsync(options); LogHelper.Info(this, "MQTT server running. Press x to exit"); char c = ' '; while (c != 'x') { c = Console.ReadKey().KeyChar; } await server.StopAsync(); }
private void ListUsers() { using (var db = new ChainSawDbContext()) { var users = db.Users.Select(obj => $"{obj.Id}\t\t{obj.Username}"); foreach (var user in users) { Console.WriteLine(user); } } }
static void Main(string[] args) { Console.ForegroundColor = ConsoleColor.Yellow; Console.WriteLine(Resources.ServerDescription); Console.ForegroundColor = ConsoleColor.White; using (var db = new ChainSawDbContext()) { db.Database.Migrate(); } IocContainer.Initialize(typeof(Program).Assembly); IocContainer.Resolve <ICommandProcessor>().Run(); }
private void AddUser(Dictionary <string, string> args) { if (args.Count != 2 || !args.ContainsKey("u") || !args.ContainsKey("p")) { Console.WriteLine(Resources.InvalidParameters); } else { using (var db = new ChainSawDbContext()) { db.Add(new User() { Username = args["u"], PasswordHash = args["p"].HashPassword() }); db.SaveChanges(); } } }