Esempio n. 1
0
        public ActionResult Index(
            string flowName,
            string originalName,
            string connectionName,
            Dictionary <string, object> model)
        {
            var queryLibrary = new QueryLibrary(Request.PhysicalApplicationPath);

            var queries = queryLibrary.GetQueriesForFlowName(flowName);
            var query   = queries
                          .FirstOrDefault(q => q.OriginalName.Trim().ToLower() == originalName.Trim().ToLower());

            if (query == null)
            {
                return(new HttpStatusCodeResult(400, "No such query"));
            }

            // Get params from model + query
            var parametersBuilder = new SqlParametersBuilder();
            var sqlParameters     = parametersBuilder.PopulateSqlParameters(query, model);

            // Build a DataLayer
            var connLibrary = new ConnectionLibrary();

            if (!connLibrary.HasConnectionWithName(connectionName))
            {
                return(new HttpStatusCodeResult(400, "No such connection"));
            }

            var dataLayer = new DataLayer(connectionName);

            var resultsTable = dataLayer.GetResults(query, sqlParameters);

            return(Json(resultsTable));
        }