public JsonResult _Register(RegisterModel model)
 {
     //for testing           
     if (model.UserName == "fail")
     {
         return Json(JsonResponseFactory.ErrorResponse("You told me to fail."), JsonRequestBehavior.DenyGet);
     }
     else
     {
         return Json(JsonResponseFactory.SuccessResponse(), JsonRequestBehavior.DenyGet);
     }   
 }
        public JsonResult _Register(RegisterModel registerModel)
        {
            if (ModelState.IsValid)
            {
                var conn =
                    new SqlConnection(
                        "Data Source = (LocalDB)\\MSSQLLocalDB; AttachDbFilename = |DataDirectory|PersonalAdressBookDatabase.mdf; MultipleActiveResultSets = True; Integrated Security = True; Connect Timeout = 30");

                var cmd = new SqlCommand("SELECT * FROM [Users] WHERE [Login] = @l ") {Connection = conn};
                cmd.Parameters.Add(new SqlParameter("@l", SqlDbType.NVarChar)).Value = registerModel.Login;
                conn.Open();
                var reader = cmd.ExecuteReader();


                if (reader.HasRows)
                {
                    conn.Close();
                    return Json(JsonResponseFactory.ErrorResponse("Wybrana nazwa użytkownika jest już zajęta."),
                        JsonRequestBehavior.DenyGet);
                }
                else
                {
                    var addCmd =
                        new SqlCommand(
                            "INSERT INTO [Users] ([Login], [Password], [LoginAttempts], [SecretQuestion], [SecretAnswer]) VALUES (@login, @password, @attempts, @question, @answer)")
                        {
                            Connection = conn
                        };
                    addCmd.Parameters.Clear();

                    addCmd.Parameters.Add(new SqlParameter("@login", SqlDbType.NVarChar)).Value = registerModel.Login;
                    addCmd.Parameters.Add(new SqlParameter("@password", SqlDbType.NVarChar)).Value =
                        registerModel.Password;
                    addCmd.Parameters.Add(new SqlParameter("@attempts", SqlDbType.Int)).Value = 0;
                    addCmd.Parameters.Add(new SqlParameter("@question", SqlDbType.NVarChar)).Value =
                        registerModel.SecretQuestion;
                    addCmd.Parameters.Add(new SqlParameter("@answer", SqlDbType.NVarChar)).Value =
                        registerModel.SecretAnswer;
                    addCmd.ExecuteNonQuery();
                    conn.Close();
                    return Json(JsonResponseFactory.ErrorResponse("Rejestracja zakończona sukcesem."),
                        JsonRequestBehavior.DenyGet);
                }
            }
            else
            {
                return Json(JsonResponseFactory.ErrorResponse(""), JsonRequestBehavior.DenyGet);
            }
        }