Пример #1
0
        public bool UpdateSubgroupValsInOthersSGDimensionInTables()
        {
            bool RetVal = false;
            string SqlQuery = string.Empty;
            DataTable SubgroupTable = null;
            int SubgroupNid = 0;
            int Others_SubgroupTypeNid = -1;
            DI6SubgroupBuilder subgroupBuilder = new DI6SubgroupBuilder(this.DBConnection, this.DBQueries);
            DI6SubgroupInfo subgroupInfo = null;

            try
            {

                subgroupBuilder = new DI6SubgroupBuilder(this.DBConnection,this.DBQueries);

                Others_SubgroupTypeNid = Convert.ToInt32(this.DBConnection.ExecuteScalarSqlQuery(this.DBQueries.SubgroupTypes.GetSubgroupTypes(FilterFieldType.GId, "'OTHERS'")));

                if (Others_SubgroupTypeNid > 0)
                {
                    SqlQuery = "select * from " + this.DBQueries.TablesName.SubgroupVals + " sv where " + SubgroupVals.SubgroupValNId + " not in(select " + SubgroupVals.SubgroupValNId + " from " + this.DBQueries.TablesName.SubgroupValsSubgroup + " svs where svs." + SubgroupVals.SubgroupValNId + "=sv." + SubgroupVals.SubgroupValNId + ")";

                    //Get those subgroupVals which is not exists in ut_subgroup_val_subgroup
                    DataTable SubgroupValsTable = this.DBConnection.ExecuteDataTable(SqlQuery);

                    foreach (DataRow SGRow in SubgroupValsTable.Rows)
                    {
                        SubgroupTable = this.DBConnection.ExecuteDataTable(this.DBQueries.Subgroup.GetSubgroup(FilterFieldType.Name, "'" + Convert.ToString(SGRow[SubgroupVals.SubgroupVal]) + "'"));

                        if (SubgroupTable.Rows.Count == 0)
                        {
                            subgroupInfo = new DI6SubgroupInfo();
                            subgroupInfo.Name = Convert.ToString(SGRow[SubgroupVals.SubgroupVal]);
                            subgroupInfo.GID = Convert.ToString(SGRow[SubgroupVals.SubgroupValGId]);
                            subgroupInfo.Global = Convert.ToBoolean(SGRow[SubgroupVals.SubgroupValGlobal]);
                            subgroupInfo.Type = Others_SubgroupTypeNid;

                            SubgroupNid = subgroupBuilder.CheckNCreateSubgroup(subgroupInfo);
                        }
                        else
                        {
                            SubgroupNid = Convert.ToInt32(SubgroupTable.Rows[0][Subgroup.SubgroupNId]);
                        }

                        this.DBConnection.ExecuteNonQuery(DevInfo.Lib.DI_LibDAL.Queries.SubgroupValSubgroup.Insert.InsertSubgroupValRelation(this.DBQueries.DataPrefix, Convert.ToInt32(SGRow[SubgroupVals.SubgroupValNId]), SubgroupNid));

                    }

                }

                RetVal = true;
            }
            catch (Exception ex)
            {
                ExceptionFacade.ThrowException(ex);
            }

            return RetVal;
        }