Exemple #1
0
        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);
         }
     }
 }
Exemple #3
0
        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();
         }
     }
 }