public ActionResult Check(string provider, string cnn)
        {
            if (string.IsNullOrEmpty(provider))
            {
                return(Json(new ServiceResponse {
                    Success = false, Message = "No provider specified"
                }));
            }

            if (string.IsNullOrEmpty(cnn))
            {
                return(Json(new ServiceResponse {
                    Success = false, Message = "No connectionstring specified to check"
                }));
            }

            var result = false;
            var msg    = "";
            IConnectionStringProvider cnnProvider = null;

            switch (provider)
            {
            case "Json": cnnProvider = JsonConnectionStringProvider.Create();
                break;

            case "AppConfig":
                cnnProvider = new AppConfigConnectionStringProvider();
                break;

            case "InMemory":
                cnnProvider = Utils.CreateInMemoryConnectionStringProvider();
                break;

            default:
                return(Json(new ServiceResponse {
                    Success = false, Message = "Invalid Provider"
                }));

                break;
            }

            using (var con = new SqlConnection(cnnProvider.GetConnectionString(cnn)))
            {
                try
                {
                    con.Open();
                    result = true;
                    con.Close();
                }
                catch (Exception e)
                {
                    msg = e.Message;
                }
            }

            return(Json(new ServiceResponse {
                Success = result, Message = msg
            }));
        }