private void CollectQuerySettings() { this.querySettings.Clear(); this.weights.Clear(); int totalWeight = 0; for (int i = 0; i < this.tabControlQuery.TabCount; i++) { QuerySetting querySetting = new QuerySetting(); { TabPage page = this.tabControlQuery.TabPages[i]; querySetting.Index = i; querySetting.UseQuery = (page.Controls[$"checkBoxUseQuery{i+1}"] as CheckBox).Checked; querySetting.Query = Config.Default[$"Query{i + 1}"].ToString(); querySetting.Arguments = Config.Default[$"QueryArguments{i + 1}"].ToString(); querySetting.FetchSize = long.Parse(Config.Default[$"FetchSize{i + 1}"].ToString()); querySetting.Weight = int.Parse(Config.Default[$"Weight{i + 1}"].ToString()); querySetting.Connected = (page.Controls.Find($"radioButtonConnectionModeConnected{i+1}", true)[0] as RadioButton).Checked; querySetting.SelectRead = (page.Controls.Find($"radioButtonReadingModeSelectRead{i+1}", true)[0] as RadioButton).Checked; this.querySettings.Add(querySetting); } if (querySetting.UseQuery) { totalWeight += querySetting.Weight; this.weights.Add(new Tuple <int, int>(i, totalWeight)); } } }
public DapperHelper() { if (_setting == null) { _setting = ObjectContainer.Resolve <Configuration>().GetSetting <QuerySetting>("QuerySetting"); } }
private void ReadingTimerHandler(object sender, ElapsedEventArgs args) { var randomIndex = Enumerable.Range(0, this.mocks.Count).OrderBy(x => Guid.NewGuid()).ToList(); int i = 0; while (this.readingCancellationToken != CancellationToken.None && !this.readingCancellationToken.IsCancellationRequested && i < randomIndex.Count) { MockClient mock = null; try { QuerySetting querySetting = GetRandomQuerySetting(); this.stat.AddReadRequestCount(querySetting.Index, 1); mock = this.mocks[randomIndex[i]]; Task.Factory.StartNew(() => ReadingJob(mock, querySetting, this.readingCancellationToken)); } catch (Exception ex) { AddLog($"OpeningTimerHandler, mock index = {randomIndex[i]}, {ex.ToString()}, {ex.Message}"); this.stat.AddErrorCount(); } finally { i++; } } }
private QuerySetting GetQuerySetting() { string strName = "ReportQuery"; string strDescription = UFIDA.U8.UAP.Services.ReportResource.U8ResService.GetResStringEx("U8.UAP.Services.ReportData.ConvertDataToBO.报表数据源查询"); QuerySetting querySetting = null; if (this._IsSqlQuerist) { SQLScript sQLScript = new SQLScript(); sQLScript.SelectPart = this._SqlScript; querySetting = new SQLQuerySetting(strName, sQLScript, strDescription); } else { string dllType = string.Empty; if (this._bVB) { dllType = "Com"; } else { dllType = "DotNet"; } querySetting = new CustomQuerySetting(strName, dllType, this._dllInfor, strDescription); } FillColumnData(querySetting); return(querySetting); }
private DynamicQuerySetting GetDynamicQuert4SqlQuerySetting(QuerySetting qs) { DynamicQuerySetting dynamicQuerySetting = new DynamicQuerySetting(); string sourceSelectPart = this.GetSourceSelectPart(qs); string finalSelectPart = string.Empty; if (!string.IsNullOrEmpty(this._filterString)) { finalSelectPart = GetFinalSelectPartWhenHasFilter(sourceSelectPart); if (!ContainsUfWhereString(sourceSelectPart)) { this.SetFilterString(dynamicQuerySetting); } } else { finalSelectPart = GetFinalSelectPartWhenNoFilter(sourceSelectPart); } // 当sourceSelectPart不包含"{{UFWHERE}}"时,finalSelectPart // 必然为空,从而不会设置dynamicQuerySetting.SelectPart // 此时如果filterString不为空,会在以上的处理中设置在 // dynamicQuerySetting.WherePart之中 if (!string.IsNullOrEmpty(finalSelectPart)) { dynamicQuerySetting.SelectPart = finalSelectPart; } return(dynamicQuerySetting); }
private void FillColumnData(QuerySetting querySetting) { for (int i = 0; i < this._OldDataDataTable.Rows.Count; i++) { QueryResultColumn tc = new QueryResultColumn(); tc.Name = this._OldDataDataTable.Rows[i]["ColName"].ToString(); tc.Description = this._OldDataDataTable.Rows[i]["ColDescription"].ToString(); tc.DataType = this.GetDataType(this._OldDataDataTable.Rows[i]["ColType"].ToString()); querySetting.QueryResultTable.Columns.Add(tc); } }
private string GetSourceSelectPart(QuerySetting qs) { SQLQuerySetting sQLQuerySetting = qs as SQLQuerySetting; if (sQLQuerySetting != null && sQLQuerySetting.Script == null) { throw new TempDBServiceException( "从数据引擎获取的SQLQuerySetting对象为空", "DataSourceId:" + this._dataSourceId); } return(sQLQuerySetting.Script.SelectPart); }
void BasicOpt_Click(object sender, RoutedEventArgs e) { var btn = e.Source as Button; if (btn != null) { var optItem = btn.DataContext as OperationInfo; if (optItem != null) { QuerySettingItems mCurrentQueryItem; switch (optItem.ID) { case S3107Consts.WDE_QueryNew: PopupPanel.Title = CurrentApp.GetLanguageInfo("3107T00028", "QuerySetting"); S3107App.QueryModify = false; QuerySetting querySetting = new QuerySetting(); querySetting.CurrentApp = CurrentApp; querySetting.ParentPage = this; PopupPanel.Content = querySetting; PopupPanel.IsOpen = true; break; case S3107Consts.WDE_QueryUpdate: S3107App.QueryModify = true; PopupPanel.Title = CurrentApp.GetLanguageInfo("3107T00028", "QuerySetting"); mCurrentQueryItem = (QuerySettingItems)LvQueryCondition.SelectedItem; if (mCurrentQueryItem == null) { CreatoptButtons(); return; } querySetting = new QuerySetting(); querySetting.CurrentApp = CurrentApp; querySetting.ParentPage = this; querySetting.QueryItem = mCurrentQueryItem; PopupPanel.Content = querySetting; PopupPanel.IsOpen = true; break; case S3107Consts.WDE_QueryDelete: mCurrentQueryItem = (QuerySettingItems)LvQueryCondition.SelectedItem; if (mCurrentQueryItem == null) { return; } DeleteDBO(mCurrentQueryItem); break; } } } }
private QuerySetting GetQuerySetting() { BusinessObject bo = this.GetBOFromDataEngine(); QueryFunction qf = this.GetQueryFunctionFrom(bo); QuerySetting ruerySetting = qf.QuerySettings[0]; if (ruerySetting == null) { throw new TempDBServiceException( "从数据引擎获取的QuerySetting对象为空", "DataSourceId:" + this._dataSourceId); } return(ruerySetting); }
/// <summary> /// 1.this._filterString为空; /// 原始的selectPart含有{{UFWHERE}},则把{{UFWHERE}}替换成where /// 2.this._filterString不为空,则把this._filterString包装成where字句并替换{{UFWHERE}}; /// A.原始的selectPart含有{{UFWHERE}}: /// 则把this._filterString包装成where字句并替换{{UFWHERE}}, /// 此时不设置DynamicQuerySetting.WherePart /// B.原始的selectPart不含有{{UFWHERE}}: /// 此时仅仅设置DynamicQuerySetting.WherePart = " AND " + this._filterString /// </summary> /// <returns> /// 返回值为一个动态设置好sql信息的数据引擎定义的对象。 注意: /// DynamicQuerySetting对象是数据引擎允许在代码中动态设置sql /// 的实现方式,因此设置此对象之后原来在UAP中预置的selectpart /// 将被忽略,所以需要将原来设置的selectpart相应信息转移到 /// DynamicQuerySetting对象中 /// </returns> private DynamicQuerySetting GetDynamicQuerySetting() { QuerySetting qs = this.GetQuerySetting(); if (qs is SQLQuerySetting) { return(this.GetDynamicQuert4SqlQuerySetting(qs)); } DynamicQuerySetting dynamicQuerySetting = new DynamicQuerySetting(); this.SetFilterString(dynamicQuerySetting); if (!string.IsNullOrEmpty(this._extendingDataSourceTempDBName)) { dynamicQuerySetting.ChildQueryTmpTables[this._extendingDataSourceTempDBName] = this._extendingDataSourceTempDBName; } return(dynamicQuerySetting); }
public JsonResult GetProduct(int?id) { if (id != null) { var product = db.products.Include(c => c.ProductCategories).FirstOrDefault(e => e.ProductID == id); if (product != null) { SqlParameter sqlParameter = new SqlParameter("@ProductID", id); var stockStatus = db.Database.SqlQuery <SPGetProductStockStatus>("SPGetProductStockStatus @ProductID", sqlParameter).FirstOrDefault(); var totalStock = stockStatus == null ? product.StockQuantity : stockStatus.RemainStock; var details = new { id = product.ProductID, is_publish = (product.IsPublish == 1) ? "Yes" : "No", name = product.ProductName, description = product.ProductDescription, category = product.ProductCategories.CategoryName, price = product.Price.ToString("C"), discounted_price = product.DiscountedPrice.ToString("C"), sales_period_start = product.SalesPeriodStartAt.ToString(string.Format("yyyy-MM-dd")), sales_period_end = product.SalesPeriodEndAt.ToString(string.Format("yyyy-MM-dd")), stock = (totalStock >= max_quantity_value) ? max_quantity_value : totalStock, file_path = "/Uploads/" + product.FilePath }; var responseObj = new { product = details }; var getRelatedProduct = Request["related"]; if (getRelatedProduct == "true") { var relatedProducts = db.products.Where(p => p.CategoryID == product.CategoryID) .Where(p => p.ProductID != id) .Where(p => p.IsPublish == 1) .Where(p => p.SalesPeriodStartAt <= DateTime.Now && p.SalesPeriodEndAt >= DateTime.Now) .Take(4) .ToList(); if (relatedProducts != null) { var related = new ArrayList(); foreach (var item in relatedProducts) { var relatedProductDetails = new { id = item.ProductID, name = item.ProductName, price = item.Price.ToString("C"), discounted_price = item.DiscountedPrice.ToString("C"), discount = item.DiscountedPrice > 0 ? true : false, stock = (item.StockQuantity > 0) ? "In stock" : "Out of stock", file_path = "/Uploads/" + item.FilePath }; related.Add(relatedProductDetails); } Response.StatusCode = (int)HttpStatusCode.OK; return(Json(new { product = details, related_product = related }, JsonRequestBehavior.AllowGet)); } } else { Response.StatusCode = (int)HttpStatusCode.OK; return(Json(new { product = details }, JsonRequestBehavior.AllowGet)); } } Response.StatusCode = (int)HttpStatusCode.NotFound; return(Json(new { Message = "Record With ID " + id.ToString() + " not found" }, JsonRequestBehavior.AllowGet)); } else { var products = new ArrayList(); var keyword = Request["keyword"]; int.TryParse(Request["categoryId"], out int categoryId); QuerySetting querySetting = new QuerySetting { is_admin = IsAdmin(), admin_as_user = false, query_by_category = false, query_by_keyword = false, keywords = "", category_id = 0, is_admin_panel = (Request["is_admin_panel"] != null && Request["is_admin_panel"] == "true") ? true : false }; if (keyword != null) { querySetting.query_by_keyword = true; querySetting.keywords = keyword; } else if (categoryId > 0) { querySetting.query_by_category = true; querySetting.category_id = categoryId; } SqlParameter[] productParams = { new SqlParameter("@IS_ADMIN", querySetting.is_admin), new SqlParameter("@ADMIN_AS_USER", querySetting.admin_as_user), new SqlParameter("@QUERY_BY_KEYWORD", querySetting.query_by_keyword), new SqlParameter("@QUERY_BY_CATEGORY", querySetting.query_by_category), new SqlParameter("@KEYWORDS", querySetting.keywords), new SqlParameter("@CATEGORY_ID", querySetting.category_id), new SqlParameter("@IS_ADMIN_PANEL", querySetting.is_admin_panel), }; var entity = db.Database.SqlQuery <SPGetProducts>("SPGetProducts @IS_ADMIN, @ADMIN_AS_USER, @QUERY_BY_KEYWORD, @QUERY_BY_CATEGORY, @KEYWORDS, @CATEGORY_ID, @IS_ADMIN_PANEL", productParams).ToList(); if (entity != null) { foreach (var item in entity) { var product = new { product_id = item.ProductID, product_name = item.ProductName, product_description = item.ProductDescription, category_id = item.CategoryID, category_name = item.CategoryName, price = item.Price.ToString("C"), discounted_price = item.DiscountedPrice.ToString("C"), stock = item.StockQuantity, file_path = "/Uploads/" + item.FilePath, discount = item.DiscountedPrice > 0 ? true : false, last_modifited_at = item.LastModifiedAt.ToString("dddd, MMMM d, yyyy HH:mm:ss") }; products.Add(product); } } Response.StatusCode = (int)HttpStatusCode.OK; return(Json(new { products }, JsonRequestBehavior.AllowGet)); } }
private void ButtonCBT_Click(object sender, EventArgs e) { AddLog("ButtonCBT_Click, started."); CollectQuerySettings(); QuerySetting querySetting = GetCurrentQuerySetting(); try { string connectionString = GenerateConnectionString(Config.Default.ServerIp, Config.Default.ServerPort, Config.Default.DatabaseName, Config.Default.UserId, Config.Default.UserPassword); using (OracleConnection conn = new OracleConnection(connectionString)) { conn.Open(); if (conn.State == ConnectionState.Open) { AddLog("ButtonCBT_Click, opened."); using (OracleCommand cmd = new OracleCommand()) { cmd.Connection = conn; if (GenerateOracleCommand(cmd, querySetting.Query, querySetting.Arguments)) { if (querySetting.Connected) { using (OracleDataReader reader = cmd.ExecuteReader()) { if (querySetting.SelectRead) { reader.FetchSize = querySetting.FetchSize; int rows = 0; int fields = 0; while (reader.Read()) { rows++; fields = reader.FieldCount; } AddLog($"ButtonCBT_Click, OracleDataReader, row count = {rows}, fields = {fields}"); } else { AddLog($"ButtonCBT_Click, OracleDataReader, has rows = {reader.HasRows}"); } } } else { using (OracleDataAdapter adapter = new OracleDataAdapter(cmd)) { if (querySetting.SelectRead) { DataTable dataTable = new DataTable(); adapter.Fill(dataTable); AddLog($"ButtonCBT_Click, OracleDataAdapter, row count = {dataTable.Rows.Count}, columns = {dataTable.Columns.Count}"); } else { AddLog($"ButtonCBT_Click, OracleDataAdapter, done."); } } } } } } else { AddLog($"ButtonCBT_Click, open failed, connection state = {conn.State.ToString()}"); } } } catch (OracleException ex) { AddLog($"ButtonCBT_Click, OracleException, {ex.Message}"); } catch (Exception ex) { AddLog($"ButtonCBT_Click, {ex.ToString()}, {ex.Message}"); } finally { AddLog("ButtonCBT_Click, ended."); } }
private void ReadingJob(MockClient mock, QuerySetting querySetting, CancellationToken cancellationToken) { try { if (CanRead(mock.Connection.State) && Interlocked.Exchange(ref mock.IsBusy, 1) == 0) { try { using (OracleCommand cmd = new OracleCommand()) { cmd.Connection = mock.Connection; if (GenerateOracleCommand(cmd, querySetting.Query, querySetting.Arguments)) { if (this.radioButtonConnectionModeConnected1.Checked) { using (OracleDataReader reader = cmd.ExecuteReader()) { this.stat.AddReadCount(querySetting.Index, 1); if (this.radioButtonReadingModeSelectRead1.Checked) { reader.FetchSize = querySetting.FetchSize; while (reader.Read() && !cancellationToken.IsCancellationRequested) { this.stat.AddRowCount(querySetting.Index, 1); this.stat.AddBytes(querySetting.Index, reader.RowSize); } } } } else { using (OracleDataAdapter adapter = new OracleDataAdapter(cmd)) { this.stat.AddReadCount(querySetting.Index, 1); if (this.radioButtonReadingModeSelectRead1.Checked) { DataTable dataTable = new DataTable(); adapter.Fill(dataTable); this.stat.AddRowCount(querySetting.Index, 1); } } } } } } finally { Interlocked.Exchange(ref mock.IsBusy, 0); } } } catch (OperationCanceledException ex) { // Operation cancelled } catch (Exception ex) { AddLog($"ReadingJob, mock index = {mock.SerialNumber}, {ex.ToString()}, {ex.Message}"); this.stat.AddErrorCount(); } bool CanRead(ConnectionState state) { bool result = false; switch (state) { case ConnectionState.Open: result = true; break; default: result = false; break; } return(result); } }