public IActionResult Complete(RegisterModel model)
        {
            //prevent start wizard if already passed
            if (!bool.Parse(configuration["FirstRun"]))
                return View("Error", ALREADY_PASSED_MESSAGE);

            //redirect to first step if user came this url directly
            if (SystemController.dataBaseConfig == null)
                return RedirectToAction("Index");

            dynamic json = ReadConfig();
            json.FirstRun = false;
            WriteConfig(json);
            configuration.Reload();

            SystemController.Start(SystemController.configuration, SystemController.services);

            return RedirectToAction("Index", "Home");
        }
        public async Task<IActionResult> Register(RegisterModel model)
        {
            if (!SystemController.webServerRules.AllowRegistrationOfNewUsers)
                return View("Error", "Registration of new users is prohibited. Please contact administrator.");

            if (db == null)
                return View("Error", NO_DB_ERROR);

            if (ModelState.IsValid)
            {
                User user = db.GetUser(model.Name);
                if (user == null)
                {
                    user = new User()
                    {
                        Name = model.Name,
                        Email = model.Email,
                        Password = model.Password,
                    };

                    db.AddUser(user);

                    await Authenticate(user);

                    return RedirectToAction("Index", "Home");
                }

                ModelState.AddModelError("", "User already exists");
            }
            return View(model);
        }
        public async Task<IActionResult> UserProfile(RegisterModel model)
        {
            //prevent start wizard if already passed
            if (!bool.Parse(configuration["FirstRun"]))
                return View("Error", ALREADY_PASSED_MESSAGE);

            //redirect to first step if user came this url directly
            if (SystemController.dataBaseConfig == null)
                return RedirectToAction("Index");

            IUsersRepository db = SystemController.usersDb;

            if (ModelState.IsValid)
            {
                User user = db.GetUser(model.Name);
                if (user == null)
                {
                    user = new User()
                    {
                        Name = model.Name,
                        Email = model.Email,
                        Password = model.Password,
                    };

                    user.SetClaims(Users.User.GetAllClaims());

                    db.AddUser(user);

                    await Authenticate(user);

                    return RedirectToAction("Complete");
                }

                ModelState.AddModelError("", "User already exists");
            }
            return View(model);
        }