public ActionResult Authenticate(User model)
        {
            User user = UserRepository.GetUser(model.Username);

            if (user != null)
            {
                if (model.Password == user.Password)
                {
                    // generate a random code
                    String code = MainController.RandomString(10);
                    user.Code = code;
                    user.Timeout = DateTime.Now.AddSeconds(60);

                    ViewBag.Username = user.Username;

                    // send mail
                    var message = new MailMessage();
                    message.To.Add(new MailAddress(user.Email));
                    message.From = new MailAddress("*****@*****.**");
                    message.Subject = "Authentication code";
                    message.Body = "Input the following code in the next 60 seconds: " + code;
                    message.IsBodyHtml = false;

                    var smtp = new SmtpClient();
                    smtp.Host = "localhost";
                    smtp.Send(message);

                    return View("Authenticate");
                }
                else
                {
                    return View("Login");
                }
            }
            else
            {
                return View("Login");
            }
        }
        public static Dictionary<String, User> GetUsers(String path)
        {
            if (_users == null)
            {
                _users = new Dictionary<String, User>();

                String[] lines = File.ReadAllLines(path);

                foreach (String line in lines)
                {
                    String[] userParams = line.Split(';');

                    User user = new User();
                    user.Username = userParams[0];
                    user.Password = userParams[1];
                    user.Email = userParams[2];

                    _users.Add(user.Username, user);
                }
            }

            return _users;
        }