Exemplo n.º 1
0
        /// <summary>
        /// Execute the stored procedure represented by the provided parameter and return the count of records affected
        /// </summary>
        /// <param cref="Socratic.DataAccess.Abstractions.IStoredProcedure{T}" name="storedProc"></param>
        /// <returns>Count of affected records</returns>
        public async Task <int> ExecuteAsync(IStoredProcedure <int> storedProc) // ToDo: common response object
        {
            var procInfo = StoredProcedureConfig.Build(storedProc);

            await BuildTransactionalConnectionAsync();

            return(await context.Database.GetDbConnection().ExecuteAsync(procInfo.Name, procInfo.Parameters, context.Database.CurrentTransaction.GetDbTransaction(), commandType: CommandType.StoredProcedure));
        }
Exemplo n.º 2
0
        /// <summary>
        /// Execute the stored procedure represented by the provided parameter and return an IEnumerable of the expected type
        /// </summary>
        /// <param cref="Socratic.DataAccess.Abstractions.IStoredProcedure{T}" name="storedProc"></param>
        /// <typeparam name="T"></typeparam>
        /// <returns>A sequence of data of T</returns>
        public async Task <IEnumerable <T> > QueryListAsync <T>(IStoredProcedure <T> storedProc)
        {
            var procInfo = StoredProcedureConfig.Build(storedProc);

            await BuildTransactionalConnectionAsync();

            return(await context.Database.GetDbConnection().QueryAsync <T>(procInfo.Name, procInfo.Parameters, context.Database.CurrentTransaction.GetDbTransaction(), commandType: CommandType.StoredProcedure));
        }
Exemplo n.º 3
0
        private string GenerateAndExecuteQuery(TreeNode databaseNode)
        {
            StringBuilder result = new StringBuilder(String.Empty);
            //var nodesCsv = TreeNodeCollectionToCsv(GetCheckedTablesAsTreeNodes(databaseNode.Nodes), "'");
            var nodesCsv = TreeNodeCollectionToCsv(GetCheckedTablesAsTreeNodes(databaseNode.Nodes, false), "");

            if (nodesCsv == "" || nodesCsv == "''")
            {
                return("");
            }
            Collection <vw_SPGenenerator> dicTables_dicColumns = GetTabels_Rows(databaseNode.Text, nodesCsv);

            if (dicTables_dicColumns.Count > 0)
            {
                foreach (TreeNode schemaNode in databaseNode.Nodes)
                {
                    foreach (TreeNode tblNode in schemaNode.Nodes)
                    {
                        StoredProcedureConfig storedProcedureConfig = new StoredProcedureConfig();
                        storedProcedureConfig.UseGo       = chkUseGo.Checked;
                        storedProcedureConfig.UseDataBase = chkAddUseDB.Checked;
                        string schemaName = tblNode.Text.Split('.')[0];
                        string tableName  = tblNode.Text.Split('.')[1];
                        storedProcedureConfig.Name = new StoredProcedureName()
                        {
                            Prefix     = txtPrefix.Text.Trim(),
                            Postfix    = txtPostfix.Text.Trim(),
                            SchemaName = schemaName,
                            TableName  = tableName                                 /*,
                                                                                    * Name = ""*/
                        };

                        if (tblNode.Checked)
                        {
                            var allColumnsForTable = GetColumnsCollectionForTable(dicTables_dicColumns, schemaName, tableName);
                            if (chkDeleteRow.Checked)
                            {
                                #region if (chkDeleteRow.Checked)

                                storedProcedureConfig.Name.Name = txtDeleteRow.Text.Trim();
                                string deleteRowSpQuery = DataBaseHelper.GenerateDeleteRowSp(databaseNode.Text, allColumnsForTable, storedProcedureConfig);
                                result.AppendLine(deleteRowSpQuery);
                                //if(chkUseGo.Checked) result.AppendLine("GO");
                                ExecuteQueryIfNeeded(deleteRowSpQuery);

                                #endregion

                                #region From Template

                                storedProcedureConfig.Name.Name = txtDeleteRow.Text.Trim();
                                string generatedFromTemplate = DataBaseHelper.GenerateQueryFromTemplate(databaseNode.Text, allColumnsForTable, storedProcedureConfig, this.deleteRowTemplate);
                                result.AppendLine(generatedFromTemplate);
                                //if(chkUseGo.Checked) result.AppendLine("GO");
                                ExecuteQueryIfNeeded(generatedFromTemplate);

                                #endregion From Template
                            }
                            if (chkInsert.Checked)
                            {
                                #region if (chkInsert.Checked)

                                storedProcedureConfig.Name.Name = txtInsert.Text.Trim();
                                string insertSpQuery = DataBaseHelper.GenerateInsertSp(databaseNode.Text, allColumnsForTable, storedProcedureConfig);
                                result.AppendLine(insertSpQuery);
                                //if (chkUseGo.Checked) result.AppendLine("GO");
                                ExecuteQueryIfNeeded(insertSpQuery);

                                #endregion

                                #region From Template

                                storedProcedureConfig.Name.Name = txtInsert.Text.Trim();
                                string generatedFromTemplate = DataBaseHelper.GenerateQueryFromTemplate(databaseNode.Text, allColumnsForTable, storedProcedureConfig, this.insertTemplate);
                                result.AppendLine(generatedFromTemplate);
                                //if(chkUseGo.Checked) result.AppendLine("GO");
                                ExecuteQueryIfNeeded(generatedFromTemplate);

                                #endregion From Template
                            }
                            if (chkSelectAll.Checked)
                            {
                                #region if (chkSelectAll.Checked)

                                storedProcedureConfig.Name.Name = txtSelectAll.Text.Trim();
                                string selectAllSpQuery = DataBaseHelper.GenerateSelectAllSp(databaseNode.Text, allColumnsForTable, storedProcedureConfig);
                                result.AppendLine(selectAllSpQuery);
                                //if (chkUseGo.Checked) result.AppendLine("GO");
                                ExecuteQueryIfNeeded(selectAllSpQuery);

                                #endregion
                            }
                            if (chkSelectRow.Checked)
                            {
                                #region if (chkSelectRow.Checked)

                                storedProcedureConfig.Name.Name = txtSelectRow.Text.Trim();
                                string selectRowSpQuery = DataBaseHelper.GenerateSelectRowSp(databaseNode.Text, allColumnsForTable, storedProcedureConfig);
                                result.AppendLine(selectRowSpQuery);
                                //if (chkUseGo.Checked) result.AppendLine("GO");
                                ExecuteQueryIfNeeded(selectRowSpQuery);

                                #endregion
                            }
                            if (chkUpdate.Checked)
                            {
                                #region if (chkUpdate.Checked)

                                storedProcedureConfig.Name.Name = txtUpdate.Text.Trim();
                                string updateSpQuery = DataBaseHelper.GenerateUpdateSp(databaseNode.Text, allColumnsForTable, storedProcedureConfig);
                                result.AppendLine(updateSpQuery);
                                //if (chkUseGo.Checked) result.AppendLine("GO");
                                ExecuteQueryIfNeeded(updateSpQuery);

                                #endregion

                                #region From Template

                                storedProcedureConfig.Name.Name = txtUpdate.Text.Trim();
                                string generatedFromTemplate = DataBaseHelper.GenerateQueryFromTemplate(databaseNode.Text, allColumnsForTable, storedProcedureConfig, this.updateTemplate);
                                result.AppendLine(generatedFromTemplate);
                                //if(chkUseGo.Checked) result.AppendLine("GO");
                                ExecuteQueryIfNeeded(generatedFromTemplate);

                                #endregion From Template
                            }
                            if (chkOldSearch_PageSort.Checked)
                            {
                                #region if (chkOldSearch_PageSort.Checked)

                                storedProcedureConfig.Name.Name = txtOldSearch_PageSort.Text.Trim();
                                string oldSearchWithPageSortSpQuery = DataBaseHelper.GenerateOldSearchWithPageSortTotalCountSp(databaseNode.Text, allColumnsForTable, storedProcedureConfig);
                                result.AppendLine(oldSearchWithPageSortSpQuery);
                                //if (chkUseGo.Checked) result.AppendLine("GO");
                                ExecuteQueryIfNeeded(oldSearchWithPageSortSpQuery);

                                #endregion
                            }
                            if (chkSearch_PageSort.Checked)
                            {
                                #region if (chkSearch_PageSort.Checked)

                                storedProcedureConfig.Name.Name = txtSearch_PageSort.Text.Trim();
                                string searchWithPageSortSpQuery = DataBaseHelper.GenerateSearchWithPagingAndSortingTotalCountSp(databaseNode.Text, allColumnsForTable, storedProcedureConfig);
                                result.AppendLine(searchWithPageSortSpQuery);
                                //if (chkUseGo.Checked) result.AppendLine("GO");
                                ExecuteQueryIfNeeded(searchWithPageSortSpQuery);

                                #endregion
                            }
                        }
                    }
                }
            }
            return(result.ToString());
        }