Exemple #1
0
        static void Main(string[] args)
        {
            System.Console.WriteLine($"CWD: {Directory.GetCurrentDirectory()}");
            if (args.Length < 1)
            {
                System.Console.WriteLine($"command required: ${args}");
                return;
            }
            var command = args[0];

            System.Console.WriteLine($"do {command}");
            var home    = Environment.GetFolderPath(Environment.SpecialFolder.UserProfile);
            var setting = Path.Join(home, ".smoking");

            if (!Directory.Exists(setting))
            {
                Directory.CreateDirectory(setting);
            }
            var smokingRepository = new SQLiteSmokingRepository(setting);
            var loginRepository   = new FileLoginRepository(setting);

            switch (command)
            {
            case "migrate":
                smokingRepository.Migrate().Wait();
                break;

            case "init":
                var initService = new InitSmokerService(smokingRepository);
                var initCommand = new InitSmokerCommand
                {
                    LimitPerDay  = 20,
                    IntervalHour = 1,
                };
                initService.Execute(initCommand);
                break;

            case "info":
                var infoService = new InfoSmokerService(smokingRepository, loginRepository);
                var infoCommand = new InfoSmokerCommand {
                };
                infoService.Execute(infoCommand).Wait();
                break;

            case "smoke":
                var smokeService = new SmokeService(smokingRepository, loginRepository);
                var smokeCommand = new SmokeCommand {
                };
                smokeService.Execute(smokeCommand).Wait();
                break;

            case "login":
                var loginService = new LoginService(loginRepository);
                var loginCommand = new LoginCommand {
                    UserID = GetAggregateID(args)
                };
                loginService.Execute(loginCommand).Wait();
                break;
            }
        }
Exemple #2
0
        public async Task Execute(InfoSmokerCommand command)
        {
            var aggregateID = await this.loginRepository.GetLoggedinUser();

            var smoker = await this.repository.Get(aggregateID);

            Console.WriteLine($"aggregate id: {smoker.AggregateID}");
            Console.WriteLine($"=== stats ===");
            Console.WriteLine($"today smoked: {smoker.TodayConsumed}");
            Console.WriteLine($"last smoked: {smoker.LastSmoked}");
            Console.WriteLine($"=== setting ===");
            Console.WriteLine($"interval: {smoker.Interval}");
            Console.WriteLine($"limit per day: {smoker.LimitPerDay}");
        }