public override QueryMetadata Handle(GetQueryMetadataAppOperationOptions options, IAppOperationContext operationContext) { QueryMetadata metaData = new QueryMetadata(); try { ConnectDB conn = new ConnectDB(); Class_ManageSettingInstance v_s = new Class_ManageSettingInstance(); List <SettingIRPClass> Las_NameCat = Class_ManageSettingInstance.GetSettingWebQuery("XWEB_QUERY"); QueryMetaD QDM = v_s.GetQueryMetaData(Las_NameCat, options.QueryRef.Id, options.OtherArgs.UserId); List <ColumnMetadata> colMeta = new List <ColumnMetadata>(); if (QDM != null) { if (QDM.Columns != null) { foreach (ColumnMetaD mdf in QDM.Columns) { ColumnMetadata metaCol = new ColumnMetadata(); metaCol.Description = mdf.Description; metaCol.Format = mdf.Format; metaCol.JsonOptions = ""; metaCol.Order = mdf.Order; metaCol.Position = 0; metaCol.Rank = mdf.Rank; metaCol.Show = mdf.Show; metaCol.Style = new ColumnStyle(); metaCol.Title = mdf.Title; if (mdf.Type == typeof(int)) { metaCol.Type = Contracts.CommonDataType.Integer; } else if (mdf.Type == typeof(double)) { metaCol.Type = Contracts.CommonDataType.Double; } else if (mdf.Type == typeof(string)) { metaCol.Type = Contracts.CommonDataType.String; } else if (mdf.Type == typeof(float)) { metaCol.Type = Contracts.CommonDataType.Double; } else if (mdf.Type == typeof(bool)) { metaCol.Type = Contracts.CommonDataType.Boolean; } else if (mdf.Type == typeof(DateTime)) { metaCol.Type = Contracts.CommonDataType.DateTime; } else if (mdf.Type == typeof(byte)) { metaCol.Type = Contracts.CommonDataType.Bytes; } metaCol.Width = mdf.Width; colMeta.Add(metaCol); } } //Описание параметров запроса (Имя поля - значение) (НА ТЕКУЩИЙ МОМЕНТ НИЧЕГО НЕ ПЕРЕДАЮ) //List<QueryParameter> Qparams = new List<QueryParameter>(); //QueryParameter Qpar = new QueryParameter(); //Qpar.Name = ""; //Qpar.Value = ""; //Qparams.Add(Qpar); //Таблица стилей (НА ТЕКУЩИЙ МОМЕНТ НИЧЕГО НЕ ПЕРЕДАЮ) /* * QueryTableStyle QStyle = new QueryTableStyle(); * QStyle.BackColor = ""; * QStyle.FontName = ""; * QStyle.FontSize = 12; * QStyle.FontStyle = ""; * QStyle.ForeColor = ""; */ metaData.Columns = colMeta.ToArray(); metaData.Description = QDM.Description; metaData.JsonOptions = ""; metaData.Name = QDM.Name; metaData.Parameters = null; metaData.QueryRef = options.QueryRef; metaData.TableStyle = new QueryTableStyle(); metaData.Techno = QDM.Techno; metaData.Title = QDM.Title; } Logger.Trace(this, options, operationContext); } catch (Exception ex) { Logger.Error(ex); } return(metaData); }
public override QueryResult Handle(ExecuteQueryAppOperationOptions options, IAppOperationContext operationContext) { QueryResult QResult = new QueryResult(); try { string decimal_sep = System.Globalization.NumberFormatInfo.CurrentInfo.NumberDecimalSeparator; Dictionary <string, object> QueryParams = options.OtherArgs.Values; ConnectDB conn = new ConnectDB(); Class_ManageSettingInstance v_s = new Class_ManageSettingInstance(); List <SettingIRPClass> Las_NameCat = Class_ManageSettingInstance.GetSettingWebQuery("XWEB_QUERY"); string sql_params = v_s.GenerateQueryFromParams(options.OtherArgs.Values, v_s.GetQueryMetaData(Las_NameCat, options.Options.QueryRef.Id, options.OtherArgs.UserId)); List <string> List_Id_Users = new List <string>(); List_Id_Users = conn.GetRegistNum(((WebQueryManagerAppOperationOptionsBase)options).OtherArgs.UserId); Class_IRP_Object Irp = v_s.ExecuteSQL("([ID]>0) " + sql_params, List_Id_Users, "XWEB_QUERY", Las_NameCat, options.Options.QueryRef.Id, ((WebQueryManagerAppOperationOptionsBase)options).OtherArgs.UserId.ToString()); QResult.TotalRowCount = (uint)Irp.Val_Arr.Count; QResult.ResultRowCount = (uint)Irp.Val_Arr.Count; QResult.QueryRef = new QueryReference(); QResult.QueryRef.Id = options.Options.QueryRef.Id; QResult.QueryRef.Version = options.Options.QueryRef.Version; List <uint> indexMap = new List <uint>(); List <Contracts.CommonDataType> CDataType = new List <Contracts.CommonDataType>(); List <Type> rtv = ConnectDB.GetAllTypesFromFlds(Irp.TABLE_NAME, Irp.FLD); if (Irp.Setting_param.IS_SQL_REQUEST) { rtv = Irp.FLD_TYPE; } int int_idx = 0; int double_idx = 0; int string_idx = 0; int float_idx = 0; int bool_idx = 0; int DateTime_idx = 0; int byte_idx = 0; for (int i = 0; i < rtv.Count; i++) { if (rtv[i] == typeof(int)) { CDataType.Add(Contracts.CommonDataType.Integer); indexMap.Add((uint)int_idx); int_idx++; } else if (rtv[i] == typeof(double)) { CDataType.Add(Contracts.CommonDataType.Double); indexMap.Add((uint)double_idx); double_idx++; } else if (rtv[i] == typeof(string)) { CDataType.Add(Contracts.CommonDataType.String); indexMap.Add((uint)string_idx); string_idx++; } else if (rtv[i] == typeof(float)) { CDataType.Add(Contracts.CommonDataType.Double); indexMap.Add((uint)float_idx); float_idx++; } else if (rtv[i] == typeof(bool)) { CDataType.Add(Contracts.CommonDataType.Boolean); indexMap.Add((uint)bool_idx); bool_idx++; } else if (rtv[i] == typeof(DateTime)) { CDataType.Add(Contracts.CommonDataType.DateTime); indexMap.Add((uint)DateTime_idx); DateTime_idx++; } else if (rtv[i] == typeof(byte)) { CDataType.Add(Contracts.CommonDataType.Bytes); indexMap.Add((uint)byte_idx); byte_idx++; } } QResult.ColumnIndexMap = indexMap.ToArray(); QResult.ColumnTypeMap = CDataType.ToArray(); bool?[][] G_BooleanValues = new bool?[Irp.Val_Arr.Count][]; byte[][] G_BytesValues = new byte[Irp.Val_Arr.Count][]; DateTime?[][] G_DateTimeValues = new DateTime?[Irp.Val_Arr.Count][]; double?[][] G_DoubleValues = new double?[Irp.Val_Arr.Count][]; int?[][] G_IntegerValues = new int?[Irp.Val_Arr.Count][]; string[][] G_StringValues = new string[Irp.Val_Arr.Count][]; if (indexMap.Count > 0) { QResult.FirstRowIndex = indexMap.Min(); } if (Irp.Val_Arr.Count > 0) { if (Irp.Val_Arr[0].Count() == CDataType.Count) { QResult.FirstRowIndex = 0; QResult.ResultRowCount = (uint)Irp.Val_Arr.Count(); QResult.TotalRowCount = (uint)Irp.Val_Arr.Count(); for (int i = 0; i < Irp.Val_Arr.Count(); i++) { G_BooleanValues[i] = new bool?[CDataType.Count()]; G_BytesValues[i] = new byte[CDataType.Count()]; G_DateTimeValues[i] = new DateTime?[CDataType.Count()]; G_DoubleValues[i] = new double?[CDataType.Count()]; G_IntegerValues[i] = new int?[CDataType.Count()]; G_StringValues[i] = new string[CDataType.Count()]; List <bool?> BooleanValues = new List <bool?>(); List <byte> BytesValues = new List <byte>(); List <DateTime?> DateTimeValues = new List <DateTime?>(); List <double?> DoubleValues = new List <double?>(); List <int?> IntegerValues = new List <int?>(); List <string> StringValues = new List <string>(); for (int j = 0; j < CDataType.Count; j++) { if (Irp.Val_Arr[i][j] != null) { if (CDataType[j] == Contracts.CommonDataType.Boolean) { BooleanValues.Add(Convert.ToBoolean(Irp.Val_Arr[i][j].ToString())); } if (CDataType[j] == Contracts.CommonDataType.Bytes) { BytesValues.Add(Convert.ToByte(Irp.Val_Arr[i][j])); } if (CDataType[j] == Contracts.CommonDataType.DateTime) { if (Irp.Val_Arr[i][j].ToString() == "") { DateTimeValues.Add(ConnectDB.NullT); } else { DateTimeValues.Add(Convert.ToDateTime(Irp.Val_Arr[i][j])); } } if (CDataType[j] == Contracts.CommonDataType.Double) { if (Irp.Val_Arr[i][j].ToString() == "") { DoubleValues.Add(ConnectDB.NullD); } else { DoubleValues.Add(Convert.ToDouble(Irp.Val_Arr[i][j].ToString().Replace(".", decimal_sep).Replace(",", decimal_sep))); } } if (CDataType[j] == Contracts.CommonDataType.Integer) { if (Irp.Val_Arr[i][j].ToString() == "") { IntegerValues.Add(ConnectDB.NullI); } else { IntegerValues.Add(Convert.ToInt32(Irp.Val_Arr[i][j])); } } if (CDataType[j] == Contracts.CommonDataType.String) { StringValues.Add(Convert.ToString(Irp.Val_Arr[i][j])); } } } G_BooleanValues[i] = BooleanValues.ToArray(); G_BytesValues[i] = BytesValues.ToArray(); G_DateTimeValues[i] = DateTimeValues.ToArray(); G_DoubleValues[i] = DoubleValues.ToArray(); G_IntegerValues[i] = IntegerValues.ToArray(); G_StringValues[i] = StringValues.ToArray(); } } } QResult.BooleanValues = G_BooleanValues; //QResult.BytesValues = G_BytesValues; QResult.DateTimeValues = G_DateTimeValues; QResult.DoubleValues = G_DoubleValues; QResult.IntegerValues = G_IntegerValues; QResult.StringValues = G_StringValues; Logger.Trace(this, options, operationContext); } catch (Exception ex) { Logger.Error(ex); } return(QResult); }
public UtilsDef(ref QueryTree view, int ID_USER) { Class_ManageSettingInstance v_s = new Class_ManageSettingInstance(); List <SettingIRPClass> Las_NameCat = Class_ManageSettingInstance.GetSettingWebQuery("XWEB_QUERY"); string Role = v_s.GetRoleUser(ID_USER != ConnectDB.NullI ? ID_USER : -1) != "" ? v_s.GetRoleUser(ID_USER != ConnectDB.NullI ? ID_USER : -1) : RolesUsers.Guest.ToString(); view.Root = new QueryTreeNode(); view.Style = new QueryTreeStyle(); view.Root.Name = MAIN_MENU_ROOT; view.Root.Description = ""; view.Root.Title = MAIN_MENU_ROOT; List <QueryTreeNode> L_Categ = new List <QueryTreeNode>(); QueryTreeNode Tnode_PUBLIC_VIEW_SPECTRUM_MANAGEMENT = AddCategoryNode(ref view, MAIN_MENU_PUBLIC_VIEW_SPECTRUM_MANAGEMENT, MAIN_MENU_PUBLIC_VIEW_SPECTRUM_MANAGEMENT, ""); L_Categ.Add(Tnode_PUBLIC_VIEW_SPECTRUM_MANAGEMENT); QueryTreeNode Tnode_USER_CUST_STATION_LIST = AddCategoryNode(ref view, MAIN_MENU_AUTH_USER_CUST_STATION_LIST, MAIN_MENU_AUTH_USER_CUST_STATION_LIST, ""); L_Categ.Add(Tnode_USER_CUST_STATION_LIST); QueryTreeNode Tnode_USER_DELEG_STATION_LIST = AddCategoryNode(ref view, MAIN_MENU_AUTH_USER_DELEG_STATION_LIST, MAIN_MENU_AUTH_USER_DELEG_STATION_LIST, ""); L_Categ.Add(Tnode_USER_DELEG_STATION_LIST); QueryTreeNode Tnode_CUST_STATION_LIST1 = AddCategoryNode(ref view, MAIN_MENU_AUTH_USER_LT1, MAIN_MENU_AUTH_USER_LT1, ""); L_Categ.Add(Tnode_CUST_STATION_LIST1); QueryTreeNode Tnode_CUST_STATION_LIST2 = AddCategoryNode(ref view, MAIN_MENU_AUTH_USER_LT2, MAIN_MENU_AUTH_USER_LT2, ""); L_Categ.Add(Tnode_CUST_STATION_LIST2); QueryTreeNode Tnode_AUTH_USER_ISV = AddCategoryNode(ref view, MAIN_MENU_AUTH_USER_ISV, MAIN_MENU_AUTH_USER_ISV, ""); L_Categ.Add(Tnode_AUTH_USER_ISV); QueryTreeNode Tnode_AUTH_HEALTH_CARE = AddCategoryNode(ref view, MAIN_MENU_AUTH_HEALTH_CARE, MAIN_MENU_AUTH_HEALTH_CARE, ""); L_Categ.Add(Tnode_AUTH_HEALTH_CARE); if (Las_NameCat != null) { foreach (SettingIRPClass item in Las_NameCat) { if ((item.IS_TESTING_REQUEST) && (RolesUsers.Admin.ToString() != Role)) { continue; } if ((RolesUsers.Admin.ToString() == Role) || (RolesUsers.Provider.ToString() == Role) || (RolesUsers.Provider_Government.ToString() == Role) || (RolesUsers.Provider_Healthcare.ToString() == Role)) { if (TypeStatus.LT1 == item.STATUS_) { AddNode(ref view, item.STATUS_.ToString(), item.ID, item.NAME, item.NAME, item.DESCRIPTION, ref Tnode_CUST_STATION_LIST1.ChildNodes); } } if ((RolesUsers.Admin.ToString() == Role) || (RolesUsers.Provider.ToString() == Role) || (RolesUsers.Provider_Government.ToString() == Role) || (RolesUsers.Provider_Healthcare.ToString() == Role)) { if (TypeStatus.LT2 == item.STATUS_) { AddNode(ref view, item.STATUS_.ToString(), item.ID, item.NAME, item.NAME, item.DESCRIPTION, ref Tnode_CUST_STATION_LIST2.ChildNodes); } } if ((RolesUsers.Admin.ToString() == Role) || (RolesUsers.Provider.ToString() == Role) || (RolesUsers.Government.ToString() == Role) || (RolesUsers.HealthCare.ToString() == Role) || (RolesUsers.Guest.ToString() == Role) || (RolesUsers.Government_Healthcare.ToString() == Role) || (RolesUsers.Provider_Government.ToString() == Role) || (RolesUsers.Provider_Healthcare.ToString() == Role)) { if (TypeStatus.PUB == item.STATUS_) { AddNode(ref view, item.STATUS_.ToString(), item.ID, item.NAME, item.NAME, item.DESCRIPTION, ref Tnode_PUBLIC_VIEW_SPECTRUM_MANAGEMENT.ChildNodes); } } if ((RolesUsers.Admin.ToString() == Role) || (RolesUsers.Provider.ToString() == Role) || (RolesUsers.Provider_Government.ToString() == Role) || (RolesUsers.Provider_Healthcare.ToString() == Role)) { if (TypeStatus.CUS == item.STATUS_) { AddNode(ref view, item.STATUS_.ToString(), item.ID, item.NAME, item.NAME, item.DESCRIPTION, ref Tnode_USER_CUST_STATION_LIST.ChildNodes); } } if ((RolesUsers.Admin.ToString() == Role) || (RolesUsers.Provider.ToString() == Role) || (RolesUsers.Provider_Government.ToString() == Role) || (RolesUsers.Provider_Healthcare.ToString() == Role)) { if (TypeStatus.DSL == item.STATUS_) { AddNode(ref view, item.STATUS_.ToString(), item.ID, item.NAME, item.NAME, item.DESCRIPTION, ref Tnode_USER_DELEG_STATION_LIST.ChildNodes); } } if ((RolesUsers.Admin.ToString() == Role) || (RolesUsers.Government.ToString() == Role) || (RolesUsers.Provider_Government.ToString() == Role) || (RolesUsers.Government_Healthcare.ToString() == Role)) { if (TypeStatus.ISV == item.STATUS_) { AddNode(ref view, item.STATUS_.ToString(), item.ID, item.NAME, item.NAME, item.DESCRIPTION, ref Tnode_AUTH_USER_ISV.ChildNodes); } } if ((RolesUsers.Admin.ToString() == Role) || (RolesUsers.HealthCare.ToString() == Role) || (RolesUsers.Provider_Healthcare.ToString() == Role) || (RolesUsers.Government_Healthcare.ToString() == Role)) { if (TypeStatus.HCC == item.STATUS_) { AddNode(ref view, item.STATUS_.ToString(), item.ID, item.NAME, item.NAME, item.DESCRIPTION, ref Tnode_AUTH_HEALTH_CARE.ChildNodes); } } } } view.Root.ChildNodes = L_Categ.ToArray(); }
public override QueryChangesResult Handle(SaveChangesAppOperationOptions options, IAppOperationContext operationContext) { QueryChangesResult result = new QueryChangesResult(); try { Class_ManageSettingInstance v_s = new Class_ManageSettingInstance(); List <QueryChangesetActionResult> L_chRes = new List <QueryChangesetActionResult>(); QueryChangesetActionResult chRes = new QueryChangesetActionResult(); result.QueryRef = new QueryReference(); result.QueryRef.Id = options.Changeset.QueryRef.Id; result.QueryRef.Version = options.Changeset.QueryRef.Version; int user_id = options.OtherArgs.UserId; Dictionary <string, object> Params = options.OtherArgs.Values; int max_Val = ConnectDB.NullI; int ID_Record = ConnectDB.NullI; foreach (KeyValuePair <string, object> p in Params) { if (p.Key == "ID") { ID_Record = Convert.ToInt32(p.Value); break; } } List <SettingIRPClass> Las_NameCat = Class_ManageSettingInstance.GetSettingWebQuery("XWEB_QUERY"); QueryMetaD MD = v_s.GetQueryMetaData(Las_NameCat, options.Changeset.QueryRef.Id, options.OtherArgs.UserId); SettingIRPClass settIRP = Las_NameCat.Find(z => z.ID == options.Changeset.QueryRef.Id); if (settIRP.IS_SQL_REQUEST == false) { List <BlockDataFind> obj_base = new List <BlockDataFind>(); foreach (QueryChangesetAction act in options.Changeset.Actions) { int D_I = ConnectDB.NullI; if ((act.Type == ChangesetActionType.Update) && (ID_Record != ConnectDB.NullI)) { obj_base = v_s.GetFieldFromFormFinder(MD, settIRP, true, Params); D_I = v_s.SaveToOrmDataEdit(MD, settIRP, obj_base, null, (int)ID_Record, user_id, out max_Val); if (D_I != ConnectDB.NullI) { chRes.Success = true; chRes.Message = "Succesfully updated record"; } else { chRes.Success = false; chRes.Message = "Error updated record"; } chRes.Type = ChangesetActionType.Update; chRes.RecordRef = new RecordReference(); chRes.RecordRef.Id = D_I; L_chRes.Add(chRes); } else if (act.Type == ChangesetActionType.Create) { obj_base = v_s.GetFieldFromFormFinderCreate(MD, settIRP, true, Params); D_I = v_s.SaveToOrmDataEdit(MD, settIRP, obj_base, null, ConnectDB.NullI, user_id, out max_Val); if (D_I != ConnectDB.NullI) { chRes.Success = true; chRes.Message = "Succesfully created new record"; } else { chRes.Success = false; chRes.Message = "Error created new record"; } chRes.Type = ChangesetActionType.Create; chRes.RecordRef = new RecordReference(); chRes.RecordRef.Id = D_I; L_chRes.Add(chRes); } else if ((act.Type == ChangesetActionType.Delete) && (ID_Record != ConnectDB.NullI)) { if (ConnectDB.SetStatusArchive(ID_Record, MD.TableName)) { chRes.Success = true; chRes.Message = string.Format("Succesfully update status = 'Z' for ID = {0}, table_name={1}", ID_Record, MD.TableName); chRes.Type = ChangesetActionType.Create; chRes.RecordRef = new RecordReference(); chRes.RecordRef.Id = ID_Record; L_chRes.Add(chRes); } else { chRes.Success = false; chRes.Message = string.Format("Error updated status = 'Z' for ID = {0}, table_name={1}", ID_Record, MD.TableName); chRes.Type = ChangesetActionType.Delete; chRes.RecordRef = new RecordReference(); chRes.RecordRef.Id = ID_Record; L_chRes.Add(chRes); } } } } else { chRes.Success = false; chRes.Message = "For mode SQL-only this function not supported!"; L_chRes.Add(chRes); } result.Actions = L_chRes.ToArray(); Logger.Trace(this, options, operationContext); } catch (Exception ex) { Logger.Error(ex); } return(result); }