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);
        }
Example #2
0
        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();
        }
Example #4
0
        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);
        }