Exemplo n.º 1
0
        public static void GetSpecSize(int referenceId)
        {
            // Initianize context FROM PLM App,
            using (SqlConnection conn = new SqlConnection(PLMConstantString.PLM_APP_ConnectionString))
            {
                //SqlContext.
                conn.Open();

                DataAcessHelper.ExecuteReadUnCommmited(conn);

                // Get SubitemID
                int       baseSizeIndexFromZero = 0;
                int       totalSizeNumber       = 0;
                DataTable returnDataTble        = GetSpecSizeRunTable(referenceId, conn, out baseSizeIndexFromZero, out totalSizeNumber);

                CLROutput.SendDataTable(returnDataTble);

                CLROutput.OutputDebug("baseSizeIndex=" + baseSizeIndexFromZero);
                CLROutput.OutputDebug("totalSizeNumber=" + totalSizeNumber);



                DataAcessHelper.ExecuteReadCommmited(conn);
            }
        }
Exemplo n.º 2
0
        private static void ProcessUserDefineEntityColumn(PdmGridClrDto aPdmGridEntity, DataTable toReturnDcuTable, List <SimpleUserDefineEntityRow> listRow, int masterColumnId)
        {
            Dictionary <int, SimpleUserDefineEntityRow> dictRow = listRow.ToDictionary(o => o.RowId, o => o);

            foreach (DataRow dataRow in toReturnDcuTable.Rows)
            {
                string valueId = dataRow[masterColumnId.ToString()] as string;

                CLROutput.OutputDebug("masterColumnId value" + valueId);
                if (!string.IsNullOrEmpty(valueId))
                {
                    // int.Parse (
                    int intValueId = int.Parse(valueId);
                    if (dictRow.ContainsKey(intValueId))
                    {
                        var dtRow = dictRow[intValueId];
                        foreach (var dependentEntityColumn in aPdmGridEntity.MasterEntityDepdentColumn[masterColumnId])
                        {
                            int userDefineColumnId = int.Parse(dependentEntityColumn.InternalCode);

                            //  CLROutput.Output("userDefineColumnId" + userDefineColumnId);

                            object value = ControlTypeValueConverter.ConvertValueToObject(dtRow[userDefineColumnId], dependentEntityColumn.ColumnTypeId);
                            if (value != null)
                            {
                                dataRow[dependentEntityColumn.GridColumnId.ToString()] = value;
                            }
                        }
                    }
                }
            }
        }
Exemplo n.º 3
0
        //dataBaseTableName must exsits first
        public static void BulkCopyDatatableToDatabaseTable(SqlConnection connection, DataTable sourceDataTable, string destinationDataBaseTableName, Dictionary <string, string> dictDataTableAndDatabaseTableMappingColumn)
        {
            try
            {
                SqlBulkCopy bulkCopy =
                    new SqlBulkCopy
                    (
                        connection,
                        SqlBulkCopyOptions.TableLock |
                        SqlBulkCopyOptions.FireTriggers |
                        SqlBulkCopyOptions.UseInternalTransaction,
                        null
                    );

                if (dictDataTableAndDatabaseTableMappingColumn != null && dictDataTableAndDatabaseTableMappingColumn.Count > 0)
                {
                    foreach (var pair in dictDataTableAndDatabaseTableMappingColumn)
                    {
                        bulkCopy.ColumnMappings.Add(pair.Key, pair.Value);
                    }
                }

                // bulkCopy.BatchSize = 50;
                bulkCopy.DestinationTableName = destinationDataBaseTableName;
                bulkCopy.WriteToServer(sourceDataTable);
            }
            catch (Exception ex)
            {
                CLROutput.OutputDebug("connection" + connection.Database);
                CLROutput.OutputDebug("Exception" + ex.ToString());
            }
        }
        private static void ProcessSingleTab(SqlInt32 aTabID, SqlConnection conn, string refids)
        {
            string tabQuery = @"select top 1 RootlevelselectSQLscript  from PLM_Dw_tabgridscript where tabID=" + aTabID + " and gridid is null";

            SqlCommand cmdQueryTabNameAndSelectRootlevel = new SqlCommand(tabQuery, conn);
            string     sQLTabLevelSelect = cmdQueryTabNameAndSelectRootlevel.ExecuteScalar() as string;

            CLROutput.OutputDebug("tabQuery=" + tabQuery, conn);
            CLROutput.OutputDebug("sQLTabLevelSelect=" + sQLTabLevelSelect, conn);



            string tabTablename = PLMSDWStoredProcedures.TabTableName[aTabID.Value];



            if (tabTablename != string.Empty)
            {
                string deleteOLDValue = string.Format(" delete {0} WHERE TabID={1} and ProductReferenceID in ({2}) ", tabTablename, aTabID, refids);

                SqlCommand deletcmd = new SqlCommand(deleteOLDValue, conn);


                CLROutput.OutputDebug("before deleteOLDValue=" + deleteOLDValue, conn);



                try
                {
                    deletcmd.ExecuteNonQuery();

                    CLROutput.OutputDebug("after delete ok deleteOLDValue=" + deleteOLDValue, conn);
                }
                catch (Exception ex)
                {
                    CLROutput.OutputDebug("delete failed deleteOLDValue=" + deleteOLDValue + ex.ToString(), conn);
                }

                string addReplaceAndRef = string.Format(" where  ProductReferenceID in ({0}) and  ", refids);

                string inserIntoSelect = " insert  into " + tabTablename + "  " + sQLTabLevelSelect.Replace("WHERE", addReplaceAndRef);;

                CLROutput.OutputDebug("before inserIntoSelect=" + inserIntoSelect, conn);



                try
                {
                    SqlCommand insertcmd = new SqlCommand(inserIntoSelect, conn);
                    insertcmd.ExecuteNonQuery();


                    CLROutput.OutputDebug("after insert ok   inserIntoSelect=" + inserIntoSelect, conn);
                }
                catch (Exception ex)
                {
                    CLROutput.OutputDebug("exception insertcmd failed=" + inserIntoSelect + ex.ToString(), conn);
                }
            }
        }
Exemplo n.º 5
0
        internal static string GetLastChangeCheckSum(SqlConnection conn, string tablname)
        {
            //  string querylastScanTimstmap = @" select master.sys.fn_varbintohexstr(cast( MAX(SystemTimeStamp) as varbinary(8)))as  varbintohexstr   from  " + tablname;

            string querylastScanTimstmap = @" SELECT CHECKSUM_AGG(BINARY_CHECKSUM(*)) FROM  " + tablname;


            //  SELECT CHECKSUM_AGG(BINARY_CHECKSUM(*)) FROM tblsketch WITH (NOLOCK);

            try
            {
                object lastScaltime = DataAcessHelper.RetriveSigleValue(conn, querylastScanTimstmap, null);
                if (lastScaltime == null)
                {
                    return(string.Empty);
                }
                else
                {
                    return(lastScaltime.ToString());
                }
            }
            catch (Exception ex)
            {
                CLROutput.OutputDebug(tablname + "missing Timstmap" + ex.ToString());
                return(string.Empty);
            }
        }
Exemplo n.º 6
0
        //TODO list--------
        public static void GenerateUserDefinTableScript()
        {
            List <int> userDefineEntityIds = null;

            using (SqlConnection conn = new SqlConnection(PLMConstantString.PLM_APP_ConnectionString))
            {
                conn.Open();

                int       userDefineEntityType  = (int)EmEntityType.UserDefineTable;
                string    qeuryUserDefineEntity = @" SELECT EntityID FROM pdmentity WHERE EntityType =  " + userDefineEntityType;
                DataTable resultTabel           = DataAcessHelper.GetDataTableQueryResult(conn, qeuryUserDefineEntity);
                userDefineEntityIds = resultTabel.GetDistinctOneColumnValueIds("EntityID").ToList();
            }


            // List<PdmEntityClrUserDefineDto> listPdmEntityClrDto = null;

            List <PdmClrEntitySimpleStructureDto> listPdmEntityClrDto = PLMSEntityClrBL.GetEntityAndColumnStrcutureInfoList(userDefineEntityIds);

            using (SqlConnection conn = new SqlConnection(PLMConstantString.PLM_APP_ConnectionString))
            {
                conn.Open();



                string aEntiValueScript = string.Empty;
                foreach (PdmClrEntitySimpleStructureDto aEntityDTO in listPdmEntityClrDto)
                {
                    //  int entityId = aEntityDTO.EntityId;
                    //  string entityCode = ;
                    aEntityDTO.EntityCode = DataTableUtility.FilterSQLDBInvalidChar(aEntityDTO.EntityCode);

                    GenetateEntityDTOQuery(aEntityDTO, conn);

                    string deleteOldEntityTable = @"delete  [pdmDWTabGridScriptSetting] where EntityID=" + aEntityDTO.EntityId;


                    // string sqlSelect = aEntityDTO.SQLSelect;
                    string IntoUseDefineTablName = " insert   into " + aEntityDTO.DWUserDefineTableName + aEntityDTO.SQLSelect;


                    // save to dbms

                    string     deleteAndInsert = deleteOldEntityTable + System.Environment.NewLine + @" insert into " + PLMConstantString.PLM_DW_TabGridScripContainerTable + " ( EntityID,EntityName,InserIntoSQLScript,DWTableName,RootLevelSelectSQLScript)    values (@EntityID,@EntityName,@queryResult,@DWTableName,@SQLRootLevelSelect)";
                    SqlCommand cmd             = new  SqlCommand(deleteAndInsert, conn);
                    cmd.Parameters.Add(new SqlParameter("@EntityID", aEntityDTO.EntityId));
                    cmd.Parameters.Add(new SqlParameter("@EntityName", DataTableUtility.FilterSQLDBInvalidChar(aEntityDTO.EntityCode)));
                    cmd.Parameters.Add(new SqlParameter("@queryResult", IntoUseDefineTablName));
                    cmd.Parameters.Add(new SqlParameter("@DWTableName", aEntityDTO.DWUserDefineTableName));
                    cmd.Parameters.Add(new SqlParameter("@SQLRootLevelSelect", aEntityDTO.SQLSelect));
                    CLROutput.OutputDebug("aEntityDTO.entityCode" + aEntityDTO.EntityCode);
                    CLROutput.OutputDebug("aEntityDTO.SQLSelect" + aEntityDTO.SQLSelect);

                    cmd.ExecuteNonQuery();
                } // end of for eahc entity
            }
        }
Exemplo n.º 7
0
        private static void ScanSessionTimer_Elapsed(object sender, ElapsedEventArgs e)
        {
            CLROutput.OutputDebug("ScanSessionTimer_Elapsed??");

            foreach (var sysDefineEntity in SystemDefineEntityList)
            {
                UpdateSystemDefineCache(sysDefineEntity);
            }
            UpdateUserDefineCache();
        }
Exemplo n.º 8
0
        public static void SetupAllLookItemCache()
        {
            var        allCacheEntity = PdmCacheManager.DictPdmEntityBlEntity;
            List <int> entityIDs      = allCacheEntity.Keys.ToList();
            Dictionary <int, List <LookupItemDto> > dictEntityLookupItemDto = GetDictEntityLookItemDtoFromDataBase(entityIDs);

            AddEntityToSystemCache(dictEntityLookupItemDto);

            CLROutput.OutputDebug("done: add cache with last scan timestamp");
        }
Exemplo n.º 9
0
        public static string GenerateSQlCreateStatmentFromSchmeTable(string tableName, DataTable schema, int[] primaryKeys)
        {
            string sql = "CREATE TABLE [" + tableName + "] (\n";

            // columns
            foreach (DataRow column in schema.Rows)
            {
                bool?isHidden = column["IsHidden"] as bool?;
                if (!(isHidden.HasValue && isHidden.Value))
                {
                    sql += "\t[" + column["ColumnName"].ToString() + "] " + SQLGetType(column);

                    bool?isAllowDBNull = column["AllowDBNull"] as bool?;
                    if (!(isAllowDBNull.HasValue && isAllowDBNull.Value))
                    {
                        sql += " NOT NULL";
                    }



                    sql += ",\n";
                }
            }
            sql = sql.TrimEnd(new char[] { ',', '\n' }) + "\n";

            // primary keys
            string pk      = ", CONSTRAINT PK_" + tableName + " PRIMARY KEY CLUSTERED (";
            bool   hasKeys = (primaryKeys != null && primaryKeys.Length > 0);

            if (hasKeys)
            {
                // user defined keys
                foreach (int key in primaryKeys)
                {
                    pk += schema.Rows[key]["ColumnName"].ToString() + ", ";
                }
            }
            else
            {
                // check schema for keys
                string keys = string.Join(", ", GetPrimaryKeys(schema));
                pk     += keys;
                hasKeys = keys.Length > 0;
            }
            pk = pk.TrimEnd(new char[] { ',', ' ', '\n' }) + ")\n";
            if (hasKeys)
            {
                sql += pk;
            }

            sql += ")";

            CLROutput.OutputDebug("SQl" + sql);
            return(sql);
        }
Exemplo n.º 10
0
        private static void UpdateSystemDefineCache(PdmEntityBlClrDto entity)
        {
            int entityId = entity.EntityId;

            CLROutput.OutputDebug("UpdateSystemDefineCache start...  ConnectInfo:" + entity.ConnectInfo);

            // CLROutput.OutputDebug("UpdateSystemDefineCache start...");

            if (!string.IsNullOrEmpty(entity.ConnectInfo))
            {
                //try
                //{
                using (SqlConnection conn = new SqlConnection(entity.ConnectInfo))
                {
                    conn.Open();

                    string lastChange = PdmCacheEntityLookupItem.GetLastChangeCheckSum(conn, entity.SysTableName);

                    //  CLROutput.InsertException(conn, "entity.LastScanCheckSum: " + entity.LastScanCheckSum + "lastChange :" + lastChange);

                    CLROutput.OutputDebug("entity.LastScanCheckSum: " + entity.LastScanCheckSum + "lastChange :" + lastChange);

                    if (lastChange != entity.LastScanCheckSum)
                    {
                        if (DictEntityLookupCache.ContainsKey(entityId))
                        {
                            CLROutput.OutputDebug(" lastChange sysdefine before DictEntityLookupCache " + "__" + entity.EntityCode + "__" + entity.LastScanCheckSum, conn);
                            List <LookupItemDto>        newLookupitem = PdmCacheEntityLookupItem.GetOneSystemDefinTableLookupItems(conn, PLMSEntityClrBL.GetSysDefineQueryIDAndDisplay(entity));
                            Dictionary <object, string> result        = PdmCacheEntityLookupItem.ConvertLookItemToDictionaryItem(newLookupitem);

                            DictEntityLookupCache.Remove(entityId);
                            DictEntityLookupCache.Add(entityId, result);

                            entity.LastScanCheckSum = lastChange;
                            // CLROutput.InsertException(conn, " lastChange sysdefine  after" + "__" + entity.EntityCode + "__" + entity.LastScanCheckSum);
                        }
                    }
                }

                //}
                //catch (Exception ex)
                //{

                //    //using (SqlConnection conn = new SqlConnection(PLMConstantString.PLM_APP_ConnectionString))
                //    //{
                //    //    conn.Open();
                //    //    CLROutput.InsertException(conn, " exception " + entity.EntityId  + "__" + entity.EntityCode   + ex.ToString());

                //    //}

                //}
            }
        }
Exemplo n.º 11
0
        public static void GetRichText(int richTectFileId)
        {
            using (SqlConnection conn = new SqlConnection(PLMConstantString.PLM_APP_ConnectionString))
            {
                conn.Open();
                DataAcessHelper.ExecuteReadUnCommmited(conn);

                string query = @"select  tblSketch.OriginalImage    from tblSketch  where SketchID =@richTectFileId";
                List <SqlParameter> listPara = new List <SqlParameter>();
                listPara.Add(new SqlParameter("@richTectFileId", richTectFileId));

                //command.Parameters.Add("@Photo",   SqlDbType.Image, photo.Length).Value = photo;

                DataTable result = DataAcessHelper.GetDataTableQueryResult(conn, query, listPara);

                if (result.Rows.Count > 0)
                {
                    byte[] rowData = result.Rows[0]["OriginalImage"] as byte[];

                    if (rowData != null)
                    {
                        string str = System.Text.Encoding.Default.GetString(rowData);
                        // CLROutput.OutputDebug(str);

                        CLROutput.OutputDebug("------------------");
                        //  string str2 = HtmlToPlainText.StripHTML(str);
                        DataTable datatable = new DataTable();

                        DataColumn column = new DataColumn("Text");
                        datatable.Columns.Add(column);

                        //column.DataType = typeof (String );
                        // column.MaxLength  = 200;



                        var row = datatable.NewRow();
                        row["Text"] = str;
                        datatable.Rows.Add(row);
                        CLROutput.SendDataTable(datatable);



                        //LROutput.OutputDebug(str2);
                    }
                }


                DataAcessHelper.ExecuteReadCommmited(conn);
            }

            //  GetGridValue(tabId, currentGridBlockId, referenceIds, false);
        }
Exemplo n.º 12
0
        private static Dictionary <int, List <LookupItemDto> > GetSysDefineEntityDisplayInfoListNew(List <PdmEntityBlClrDto> sysDefineEntityList, SqlConnection conn)
        {
            Dictionary <int, List <LookupItemDto> > toReturn = new Dictionary <int, List <LookupItemDto> >();

            Dictionary <string, string> dictTableNameAndQuery = new Dictionary <string, string>();

            foreach (var aPdmEntityDto in sysDefineEntityList)
            {
                string systemQueryTable = GetSysDefineQueryIDAndDisplay(aPdmEntityDto);
                //  CLROutput.OutputDebug("aPdmEntityDto.SysTableName" + aPdmEntityDto.EntityId + "=" + aPdmEntityDto.EntityCode + aPdmEntityDto.SysTableName);
                if (!dictTableNameAndQuery.ContainsKey(aPdmEntityDto.SysTableName))
                {
                    dictTableNameAndQuery.Add(aPdmEntityDto.SysTableName, systemQueryTable);

                    CLROutput.OutputDebug("aPdmEntityDto.SysTableName" + aPdmEntityDto.EntityId + "=" + aPdmEntityDto.EntityCode + aPdmEntityDto.SysTableName + " systemQueryTable=" + systemQueryTable);
                }
            }

            // SqlContext.Pipe.Send("queryRowValue=" + allSystemQueryTable);
            DataSet result = DataAcessHelper.GetDataSetQueryResult(conn, dictTableNameAndQuery);

            //  var dictTableNameAndDto = sysDefineEntityList.ToDictionary(o => o.EntityId , o => o);

            foreach (var SysEntityDto in sysDefineEntityList)
            {
                string sysTableName = SysEntityDto.SysTableName;
                foreach (DataTable datatable in result.Tables)
                {
                    //  CLROutput.SendDataTable(datatable);

                    if (sysTableName == datatable.TableName)
                    {
                        List <LookupItemDto> listDto = new List <LookupItemDto>();
                        foreach (DataRow row in datatable.Rows)
                        {
                            LookupItemDto itemDto = new LookupItemDto();
                            itemDto.Id      = (int)row["Id"];
                            itemDto.Display = row["Display"] as string;
                            listDto.Add(itemDto);
                        }

                        toReturn.Add(SysEntityDto.EntityId, listDto);
                    }

                    //if(
                    // DataSetUtilities.SendDataTable(datatable);
                }
            }

            return(toReturn);
        }
        private static DataTable GetMutipleBlockGridCellValueTable(int[] referenceIds, int[] blockIds, int[] columnIds)
        {
            var andblockIdclause = DataAcessHelper.GenerateColumnInClauseWithAndCondition(blockIds, GridColumnConstantName.BlockID, false);;

            string referenceInClause = DataAcessHelper.GenerateColumnInClauseWithAndCondition(referenceIds, GridColumnConstantName.ProductReferenceID, true);

            // string referenceInClause = string.Empty;

            var columnIdInclause = DataAcessHelper.GenerateColumnInClauseWithAndCondition(columnIds, GridColumnConstantName.GridColumnID, true);

            StringBuilder aQuery = new StringBuilder();

            //   aQuery.Append( string" SELECT ProductReferenceID,BlockID, GridID,  RowID,  RowValueGUID ,Sort,");

            aQuery.Append(" SELECT " +
                          GridColumnConstantName.ProductReferenceID + ", " +
                          GridColumnConstantName.BlockID + ", " +
                          //  GridColumnConstantName.RowID + ", " +
                          GridColumnConstantName.Sort + ", " +
                          GridColumnConstantName.GridColumnID + ", " +
                          GridColumnConstantName.RowValueGUID + ", " +
                          GridColumnConstantName.ValueText
                          );

            aQuery.Append(" from pdmSearchComplexColumnValue where " + andblockIdclause + referenceInClause + columnIdInclause);

            CLROutput.OutputDebug(aQuery.ToString());

            string queryCell = aQuery.ToString();

            CLROutput.OutputDebug("GetMutipleBlockGridCellValueTable=" + queryCell);

            // test 4 Grid for all cell values forthe perforamce
            // queryCell = @" SELECT ProductReferenceID, BlockID, RowID, Sort, GridColumnID, ValueText from pdmSearchComplexColumnValue where    BlockID in ( 20, 14 ,64,65) ";

            using (SqlConnection conn = new SqlConnection(PLMConstantString.PLM_APP_ConnectionString))
            {
                conn.Open();
                DataAcessHelper.ExecuteReadUnCommmited(conn);

                var dtReferenceGridValue = DataAcessHelper.GetDataTableQueryResult(conn, queryCell);

                DataAcessHelper.ExecuteReadCommmited(conn);

                return(dtReferenceGridValue);

                //CLROutput.SendDataTable(dtReferenceGridValue);
            }
        }
Exemplo n.º 14
0
        internal static List <GridColumnClrUserDefineDto> GetTabGridSelectColumnAndAliasDtoFromCache(int tabId, PdmBlockClrDto dmBlockClrDto)
        {
            string key = tabId.ToString() + "_" + dmBlockClrDto.BlockId.ToString();

            if (DictMainTabBlokGridColumnCache.ContainsKey(key))
            {
                CLROutput.OutputDebug("string key = " + key);
                return(DictMainTabBlokGridColumnCache[key]);
            }
            else
            {
                List <GridColumnClrUserDefineDto> printColumnListDto = GetTabGridBlockColumnAliasName(tabId, dmBlockClrDto);
                DictMainTabBlokGridColumnCache.Add(key, printColumnListDto);
                return(printColumnListDto);
            }
        }
Exemplo n.º 15
0
        private static void SetupEntityScanTimer()
        {
            CLROutput.OutputDebug("tiemrestart");
            Timer SessionTimer = new Timer();

            SessionTimer.Enabled   = true;
            SessionTimer.AutoReset = true;

            SessionTimer.Elapsed += new ElapsedEventHandler(ScanSessionTimer_Elapsed);

            // open datasource, edist save,, then open teckpakc print need one 1 minus
            // cause bug 1.5 ???
            SessionTimer.Interval = 1 * 20 * 1000;
            //  SessionTimer.Interval = 5 * 1000;
            SessionTimer.Start();
        }
Exemplo n.º 16
0
        internal static List <GridColumnClrUserDefineDto> GetTabGridSelectColumnAndAliasDtoFromCache(int tabId, PdmBlockClrDto dmBlockClrDto, bool IsGetAliasname)
        {
            string key = tabId.ToString() + "_" + dmBlockClrDto.BlockId.ToString();


            if (IsGetAliasname)
            {
                if (DictMainTabBlokGridColumnCache.ContainsKey(key))
                {
                    CLROutput.OutputDebug("string key = " + key);
                    return(DictMainTabBlokGridColumnCache[key]);
                }
                else
                {
                    List <GridColumnClrUserDefineDto> printColumnListDto = GetTabGridBlockColumnAliasName(tabId, dmBlockClrDto, true);
                    DictMainTabBlokGridColumnCache.Add(key, printColumnListDto);
                    return(printColumnListDto);
                }
            }
            else // it is External mapping column
            {
                if (DictMainTabBlokGridColumnExternaMappingCache.ContainsKey(key))
                {
                    //  CLROutput.OutputDebug("string key = " + key);
                    return(DictMainTabBlokGridColumnExternaMappingCache[key]);
                }
                else
                {
                    List <GridColumnClrUserDefineDto> printColumnListDto = GetTabGridBlockColumnAliasName(tabId, dmBlockClrDto, false);
                    DictMainTabBlokGridColumnExternaMappingCache.Add(key, printColumnListDto);
                    return(printColumnListDto);
                }
            }

            // List<GridColumnClrUserDefineDto> printColumnListDto = GetTabGridBlockColumnAliasName(tabId, dmBlockClrDto, IsGetAliasname);
            //  DictMainTabBlokGridColumnCache.Add(key, printColumnListDto);
            // return printColumnListDto;
        }
Exemplo n.º 17
0
        //  [Microsoft.SqlServer.Server.SqlProcedure]
        public static void TestCLR()
        {
            //            PLMSReferenceValueRetrieveBL.GetMutipleBlockGridCellValueTable(new[] { 9625 }, new[] { 5807 }, new[] { 4407,
            //4408,
            //4410,
            //4411,
            //4412,
            //4413,
            //4414,
            //4415,
            //4416});

            var result =
                PLMSReferenceValueRetrieveBL.RetrieveBlocksReferencesGridColumnsRowList(new[] { 9625 }, new[] { 5807 }, new[] { 4407,
                                                                                                                                4408,
                                                                                                                                4410,
                                                                                                                                4411,
                                                                                                                                4412,
                                                                                                                                4413,
                                                                                                                                4414,
                                                                                                                                4415,
                                                                                                                                4416 });

            //CLROutput.Output(result.Count.ToString () );

            foreach (var pair in result)
            {
                CLROutput.OutputDebug(pair.Key.ToString());

                var dictValue1 = pair.Value;

                foreach (var pair2 in dictValue1)
                {
                    CLROutput.OutputDebug(pair2.Key.ToString());

                    var dictvalue3 = pair2.Value;

                    foreach (var row in dictvalue3)
                    {
                        // row.RowId

                        //CLROutput.Output(pair3.Key.ToString());

                        //var dictvalue4 = pair3.Value;

                        //foreach (var pair4 in dictvalue4)
                        //{
                        //    CLROutput.Output(pair4.Key.ToString());

                        //    var dictvalue5 = pair4.Value;

                        //}
                    }
                }
            }

            // CLROutput.SendDataTable(gridcolumnResultDataTable);

            //using (SqlConnection conn = new SqlConnection("Data Source=srv-spider;Initial Catalog=PLMS_Devlp;User ID=sa;Password=visualdev"))
            //{
            //    //SqlContext.
            //    conn.Open();

            //    // TestDatatableScheme(conn);
            //    //  DataTableUtility.BulkCopyDatatableToDatabaseTable(conn, result, "FromDataTale", dictDataTableAndDatabaseTableMappingColumn);

            //    TestExcelExport(conn);
            //}

            //PLMSDWStoredProcedures.GenerateUserDefinTableScript();
        }
        }        // key1: blockId, key2:referecne, value

        public static Dictionary <int, Dictionary <int, object> > RetrieveReferenceSimpleDcutValue(IEnumerable <int> referenceIds, List <PdmBlockSubItemClrDto> subItemList)
        {
            // subitemIds = subitemIds.Distinct().ToArray ();

            if (referenceIds.Count() == 0 || subItemList.Count == 0)
            {
                return(new Dictionary <int, Dictionary <int, object> >());
            }

            Dictionary <int, int> dictSuibtemIdControType = new Dictionary <int, int>();

            foreach (var blockSubitem in subItemList)
            {
                dictSuibtemIdControType.Add(blockSubitem.SubItemId, blockSubitem.ControlType);
            }

            Dictionary <int, Dictionary <int, object> > toReturn = new Dictionary <int, Dictionary <int, object> >();

            if (referenceIds == null || referenceIds.Count() == 0)
            {
                return(toReturn);
            }

            var subitemIds        = subItemList.Select(o => o.SubItemId).ToList();
            var referenceInClause = DataAcessHelper.GenerateColumnInClauseWithAndCondition(referenceIds, GridColumnConstantName.ProductReferenceID, false);
            var subitemIdInclause = DataAcessHelper.GenerateColumnInClauseWithAndCondition(subitemIds, GridColumnConstantName.SubItemID, true);

            StringBuilder aQuery = new StringBuilder();

            //   aQuery.Append( string" SELECT ProductReferenceID,BlockID, GridID,  RowID,  RowValueGUID ,Sort,");

            aQuery.Append(" SELECT " +
                          GridColumnConstantName.ProductReferenceID + ", " +
                          GridColumnConstantName.SubItemID + ", " +
                          GridColumnConstantName.ValueText
                          );

            string queryString = aQuery.ToString() + " from pdmSearchSimpleDcuValue where " + referenceInClause + subitemIdInclause;

            CLROutput.OutputDebug("from pdmSearchSimpleDcuValu" + queryString);

            DataTable dtSimpleValue;

            using (SqlConnection conn = new SqlConnection(PLMConstantString.PLM_APP_ConnectionString))
            {
                conn.Open();
                DataAcessHelper.ExecuteReadUnCommmited(conn);

                dtSimpleValue = DataAcessHelper.GetDataTableQueryResult(conn, queryString);

                DataAcessHelper.ExecuteReadCommmited(conn);
            }

            var subItemQuery = from row in dtSimpleValue.AsDataRowEnumerable()
                               group row by new
            {
                ProductReferenceID = (int)row[GridColumnConstantName.ProductReferenceID]
            } into grp
            orderby grp.Key.ProductReferenceID
                select new
            {
                Key = grp.Key.ProductReferenceID,

                SubitemIDAndValueList = grp.Select(r => new { id = (int)r[GridColumnConstantName.SubItemID], value = r[GridColumnConstantName.ValueText] }),
            };

            foreach (var o in subItemQuery)
            {
                Dictionary <int, object> dictSubitemValue = new Dictionary <int, object>();

                foreach (var subitem in o.SubitemIDAndValueList)
                {
                    var value = ControlTypeValueConverter.ConvertValueToObject(subitem.value, dictSuibtemIdControType[subitem.id]);
                    dictSubitemValue.Add(subitem.id, value);
                }

                var notInDict = subitemIds.Except(dictSubitemValue.Keys);
                foreach (var subitId in notInDict)
                {
                    dictSubitemValue.Add(subitId, null);
                }

                toReturn.Add(o.Key, dictSubitemValue);
            }

            return(toReturn);
        }        // key1: blockId, key2:referecne, value
        public static DataTable RetrieveDataTableReferenceSimpleDcutValue(IEnumerable <string> referenceIds, List <PdmBlockSubItemClrDto> subItemList, bool isShowLookUpItem = true)
        {
            Dictionary <int, int> dictSuibtemIdControType = new Dictionary <int, int>();

            foreach (var blockSubitem in subItemList)
            {
                dictSuibtemIdControType.Add(blockSubitem.SubItemId, blockSubitem.ControlType);
            }

            Dictionary <int, Dictionary <int, object> > toReturn = new Dictionary <int, Dictionary <int, object> >();

            //if (referenceIds == null || referenceIds.Count() == 0)
            //    return simpleDcuTable;

            var subitemIds = subItemList.Select(o => o.SubItemId).ToList();

            if (subitemIds.Count == 0)
            {
                return(new DataTable());
            }

            string referenceInClause = DataAcessHelper.GenerateColumnInClauseWithAndCondition(referenceIds, GridColumnConstantName.ProductReferenceID, true);

            if (referenceIds.Count() == 1 && referenceIds.ElementAt(0) == "-2")
            {
                referenceInClause = string.Empty;
            }


            string subitemIdInclause = DataAcessHelper.GenerateColumnInClauseWithAndCondition(subitemIds, GridColumnConstantName.SubItemID, false);

            StringBuilder aQuery = new StringBuilder();

            //   aQuery.Append( string" SELECT ProductReferenceID,BlockID, GridID,  RowID,  RowValueGUID ,Sort,");

            aQuery.Append(" SELECT " +
                          GridColumnConstantName.ProductReferenceID + ", " +
                          GridColumnConstantName.SubItemID + ", " +
                          GridColumnConstantName.ValueText
                          );

            string queryString = aQuery.ToString() + " from pdmSearchSimpleDcuValue where " + subitemIdInclause + referenceInClause;



            DataTable dtSimpleValue;

            var allSubitemeEntityIds = subItemList.Where(o => o.EntityId.HasValue).Select(o => o.EntityId.Value).ToList();
            Dictionary <int, Dictionary <object, string> > dictKeyEntityDictKeyIdDisplayString = PLMSEntityClrBL.GetDictEntityDictDisplayString(allSubitemeEntityIds);



            using (SqlConnection conn = new SqlConnection(PLMConstantString.PLM_APP_ConnectionString))
            {
                conn.Open();
                DataAcessHelper.ExecuteReadUnCommmited(conn);

                dtSimpleValue = DataAcessHelper.GetDataTableQueryResult(conn, queryString);
                // dictKeyEntityDictKeyIdDisplayString = PLMSEntityClrBL.GetDictEntityDictDisplayString(allSubitemeEntityIds, conn);

                DataAcessHelper.ExecuteReadCommmited(conn);
            }

            var subItemQuery = from row in dtSimpleValue.AsDataRowEnumerable()
                               group row by new
            {
                ProductReferenceID = (int)row[GridColumnConstantName.ProductReferenceID]
            } into grp
            orderby grp.Key.ProductReferenceID
                select new
            {
                Key = grp.Key.ProductReferenceID,

                SubitemIDAndValueList = grp.Select(r => new { id = (int)r[GridColumnConstantName.SubItemID], value = r[GridColumnConstantName.ValueText] }),
            };

            DataTable roReturnDcuTable = CreateDataTableStrcutureFromBlockSubitem(subItemList);

            foreach (var o in subItemQuery)
            {
                //Dictionary<int, object> dictSubitemValue = new Dictionary<int, object>();

                DataRow dataRow = roReturnDcuTable.NewRow();
                dataRow[GridColumnConstantName.ProductReferenceID] = o.Key;
                foreach (var subitem in o.SubitemIDAndValueList)
                {
                    object value = ControlTypeValueConverter.ConvertValueToObject(subitem.value, dictSuibtemIdControType[subitem.id]);


                    if (value == null)
                    {
                        dataRow[subitem.id.ToString()] = DBNull.Value;
                    }
                    else
                    {
                        //  CLROutput.Output("convervalue=" + value);
                        dataRow[subitem.id.ToString()] = value;

                        //  CLROutput.Output("dataRow[subitem.id.ToString()]" + dataRow[subitem.id.ToString()]);
                    }
                }

                roReturnDcuTable.Rows.Add(dataRow);
            }

            if (isShowLookUpItem)
            {
                List <PdmBlockSubItemClrDto> dDLSubitemDtoList = subItemList.Where(o => o.ControlType == (int)EmControlType.DDL && o.EntityId.HasValue).ToList();

                foreach (var dictDDLSubitemDto in dDLSubitemDtoList)
                {
                    int    entityId        = dictDDLSubitemDto.EntityId.Value;
                    string stringSubItemId = dictDDLSubitemDto.SubItemId.ToString();
                    if (dictKeyEntityDictKeyIdDisplayString.ContainsKey(entityId))
                    {
                        Dictionary <object, string> lookUpItem = dictKeyEntityDictKeyIdDisplayString[entityId];
                        foreach (DataRow row in roReturnDcuTable.Rows)
                        {
                            int?lookupid = ControlTypeValueConverter.ConvertValueToInt(row[stringSubItemId]);
                            if (lookupid.HasValue)
                            {
                                int idvalue = lookupid.Value;
                                if (lookUpItem.ContainsKey(idvalue))
                                {
                                    row[stringSubItemId] = lookUpItem[idvalue];;

                                    CLROutput.OutputDebug("entityID_idvalue+dislayvalue=" + entityId.ToString() + "_" + idvalue.ToString() + "_" + "_" + lookUpItem[idvalue]);
                                }
                            }
                        }
                    }
                }
            }


            return(roReturnDcuTable);
        }        // key1: blockId, key2:referecne, value
Exemplo n.º 20
0
        /// <summary>
        /// Main method for exporting to Excel.
        /// </summary>
        /// <param name="data"></param>
        public void Export(DataSet data)
        {
            string outputFile;

            outputFile = mFilePath + defaultFilename + ".xls";

            XmlWriterSettings settings = new XmlWriterSettings();

            settings.Indent = true;

            CLROutput.OutputDebug("outputFile=" + outputFile);

            using (XmlWriter xw = XmlWriter.Create(outputFile, settings))
            {
                //Required namespaces used for SpreadsheetML standard.
                xw.WriteStartDocument();
                xw.WriteProcessingInstruction("mso-application", "Excel.Sheet");
                xw.WriteStartElement("Workbook", "urn:schemas-microsoft-com:office:Spreadsheet");
                xw.WriteAttributeString("xmlns", "o", null, "urn:schemas-microsoft-com:office:office");
                xw.WriteAttributeString("xmlns", "x", null, "urn:schemas-microsoft-com:office:excel");
                xw.WriteAttributeString("xmlns", "ss", null, "urn:schemas-microsoft-com:office:Spreadsheet");
                xw.WriteAttributeString("xmlns", "html", null, "http://www.w3.org/TR/REC-html40");

                WriteHeaderInfo(xw);

                //Iterate the tables in the dataset.
                //Each table will become a tab or sheet in the workbook.
                foreach (DataTable dt in data.Tables)
                {
                    //Default the tab name to either the table name
                    //or pull tab name from first column of each resultset.
                    string sheetName;
                    if (dt.Rows.Count > 0)
                    {
                        sheetName = dt.Rows[0][sheetNameColumnOrdinal].ToString();
                    }
                    else
                    {
                        sheetName = dt.TableName;
                    }

                    //Start of a tab
                    xw.WriteStartElement("Worksheet");
                    xw.WriteAttributeString("ss", "Name", null, sheetName);

                    xw.WriteStartElement("Table");
                    xw.WriteAttributeString("ss", "DefaultColumnWidth", null, "100");

                    //Write out header data
                    xw.WriteStartElement("Row");
                    //Format column headings
                    foreach (DataColumn dc in dt.Columns)
                    {
                        if (dc.Ordinal != sheetNameColumnOrdinal)
                        {
                            xw.WriteStartElement("Cell");
                            xw.WriteAttributeString("ss", "StyleID", null, "Header");
                            xw.WriteStartElement("Data");
                            xw.WriteAttributeString("ss", "Type", null, "String");
                            xw.WriteString(dc.ColumnName);
                            xw.WriteEndElement(); //End Data
                            xw.WriteEndElement(); //End Cell
                        }
                    }
                    xw.WriteEndElement(); //End Row

                    //Write out row data
                    foreach (DataRow dr in dt.Rows)
                    {
                        xw.WriteStartElement("Row");
                        foreach (DataColumn dc in dt.Columns)
                        {
                            if (dc.Ordinal != sheetNameColumnOrdinal)
                            {
                                string dataType;
                                string style;
                                string output;

                                //Set appropriate styling of each cell based on datatype
                                //This depends on how sql server ends up reporting the datatype.
                                switch (dc.DataType.ToString())
                                {
                                case "System.DateTime":
                                    dataType = "DateTime";
                                    style    = "Date";

                                    try
                                    {
                                        output = DateTime.Parse(dr[dc].ToString()).ToString("yyyy-MM-dd");
                                    }
                                    catch (FormatException fe)     //date is null or empty in dataset
                                    {
                                        output = "";
                                    }

                                    break;

                                case "System.Decimal":
                                case "System.Double":
                                case "System.Int16":
                                case "System.Int32":
                                case "System.Int64":
                                case "System.Byte":
                                    dataType = "Number";
                                    style    = "Data";
                                    output   = dr[dc].ToString().Trim();
                                    break;

                                default:
                                    dataType = "String";
                                    style    = "Data";
                                    output   = dr[dc].ToString().Trim();
                                    break;
                                }

                                //if no data then write empty cell node
                                xw.WriteStartElement("Cell");
                                xw.WriteStartAttribute("StyleID", "");
                                xw.WriteString(style);
                                xw.WriteEndAttribute(); //End Style Attribute
                                if (output != "")
                                {
                                    xw.WriteStartElement("Data");
                                    xw.WriteAttributeString("ss", "Type", null, dataType);
                                    xw.WriteString(output);
                                    xw.WriteEndElement(); //End Data
                                }
                                xw.WriteEndElement();     //End Cell
                            }
                        }
                        xw.WriteEndElement(); //End Row
                    }

                    xw.Flush();
                    xw.WriteEndElement(); //End Table
                    xw.WriteEndElement(); //End Worksheet
                }

                xw.WriteEndElement(); //End Workbook
                xw.Flush();
            }
        }
        // [Microsoft.SqlServer.Server.SqlProcedure]
        public static void DoSynchronizeReferenceBlockToTabGridDWTo(string refids, string blockids)
        {
            if (string.IsNullOrEmpty(refids) || string.IsNullOrEmpty(blockids))
            {
                return;
            }

            #region ------------ do Tab sych

            using (SqlConnection conn = new SqlConnection(PLMConstantString.PLM_APP_ConnectionString))
            {
                conn.Open();

                //InsertException(conn, "refids=" + refids + " blockids=" + blockids);
                CLROutput.OutputDebug("refids=" + refids + " blockids=" + blockids, conn);



                string processTab = string.Format(@"
                      SELECT DISTINCT pdmTabBlock.TabID
                    FROM         pdmTabBlock INNER JOIN
                     pdmBlock  on pdmTabBlock.BlockID = pdmBlock.BlockID 
                     inner join 
                      pdmDWRequireTabAndGrid ON pdmDWRequireTabAndGrid.TabID = pdmTabBlock.TabID INNER JOIN
                      pdmBlockSubItem ON pdmTabBlock.BlockID = pdmBlockSubItem.BlockID
                    WHERE     (pdmBlockSubItem.GridID IS NULL) and    (pdmTabBlock.BlockID IN ({0}))", blockids);

                CLROutput.OutputDebug("processTabBlock=" + processTab, conn);


                SqlCommand cmd = new SqlCommand(processTab, conn);

                SqlDataAdapter        adapter     = new SqlDataAdapter(cmd);
                System.Data.DataTable resultTabel = new DataTable();
                adapter.Fill(resultTabel);

                foreach (DataRow aRow in resultTabel.Rows)
                {
                    //begin root leve

                    SqlInt32 aTabID = Converter.ToDDLSqlInt32(aRow["TabID"]);
                    ProcessSingleTab(aTabID, conn, refids);
                }
            }

            #endregion

            #region -----------  do Grid Transfer

            using (SqlConnection conn = new SqlConnection(PLMConstantString.PLM_APP_ConnectionString))
            {
                conn.Open();

//                string processGrid = string.Format(@"
// SELECT DISTINCT   dbo.pdmBlockSubItem.BlockID, dbo.pdmBlockSubItem.GridID, dbo.pdmTabField.TabID, dbo.pdmTab.ProductCopyTabRootTabID
//                                                                    FROM         dbo.pdmBlockSubItem INNER JOIN
//                                                                    dbo.pdmItem ON dbo.pdmBlockSubItem.BlockID = dbo.pdmItem.BlockID INNER JOIN
//                                                                    dbo.pdmTabField ON dbo.pdmItem.FieldID = dbo.pdmTabField.FieldID INNER JOIN
//                                                                    dbo.pdmTab ON dbo.pdmTabField.TabID = dbo.pdmTab.TabID
//                                                                     INNER JOIN  pdmDWRequireTabAndGrid on pdmDWRequireTabAndGrid.GridID = dbo.pdmBlockSubItem.GridID and pdmDWRequireTabAndGrid.TabID=dbo.pdmTab.TabID
//                                                                WHERE     (dbo.pdmBlockSubItem.GridID IS NOT NULL) and  dbo.pdmTab.ProductCopyTabRootTabID is null
//                                                                  AND      ( dbo.pdmBlockSubItem.BlockID IN ({0}))", blockids);



                string processGrid = string.Format(@"
 SELECT DISTINCT pdmBlockSubItem.BlockID, pdmBlockSubItem.GridID, PdmTabBlock.TabID
FROM         pdmDWRequireTabAndGrid INNER JOIN
                      pdmBlockSubItem ON pdmDWRequireTabAndGrid.GridID = pdmBlockSubItem.GridID INNER JOIN
                      PdmTabBlock ON pdmBlockSubItem.BlockID = PdmTabBlock.BlockID AND pdmDWRequireTabAndGrid.TabID = PdmTabBlock.TabID
               WHERE     (dbo.pdmBlockSubItem.GridID IS NOT NULL)   AND      ( dbo.pdmBlockSubItem.BlockID IN ({0}))", blockids);


                SqlCommand cmd = new SqlCommand(processGrid, conn);

                SqlDataAdapter        adapter     = new SqlDataAdapter(cmd);
                System.Data.DataTable resultTabel = new DataTable();
                adapter.Fill(resultTabel);

                foreach (DataRow aRow in resultTabel.Rows)
                {
                    //dbo.pdmTab.TabID, dbo.pdmTab.ProductCopyTabRootTabID, dbo.pdmTab.ProductReferenceID

                    SqlInt32 aGridID  = Converter.ToDDLSqlInt32(aRow["GridID"]);
                    SqlInt32 aTabID   = Converter.ToDDLSqlInt32(aRow["TabID"]);
                    SqlInt32 aBlockID = Converter.ToDDLSqlInt32(aRow["BlockID"]);

                    string gridTablename = string.Empty;
                    if (PLMSDWStoredProcedures.GridTableName.ContainsKey(aGridID.Value))
                    {
                        gridTablename = PLMSDWStoredProcedures.GridTableName[aGridID.Value];

                        CLROutput.OutputDebug("GridTableName=" + gridTablename, conn);
                    }

                    if (gridTablename != string.Empty)
                    {
                        //TabID,ProductReferenceID, GridID

                        string deleteOLDValue = string.Format(" delete {0} WHERE TabID={1} and ProductReferenceID in ({2}) and GridID={3} and BlockID = {4} ", gridTablename, aTabID, refids, aGridID, aBlockID);

                        try
                        {
                            SqlCommand deletcmd = new SqlCommand(deleteOLDValue, conn);
                            deletcmd.ExecuteNonQuery();
                        }
                        catch
                        {
                            CLROutput.OutputDebug("deleteGridFieldOLDValue=" + deleteOLDValue, conn);
                        }

                        string replaceWHERE = string.Format(" where TabID={0} and ProductReferenceID in ({1})   and BlockID = {2} and ", aTabID, refids, aBlockID);

                        string insertIntoGridTable = string.Empty;

                        string getRootGridSelectQuery = @"select top 1 RootlevelselectSQLscript from PLM_Dw_tabgridscript where gridid=" + aGridID + " and tabid is null";

                        SqlCommand cmdRootGrid    = new SqlCommand(getRootGridSelectQuery, conn);
                        string     rootLevelquery = cmdRootGrid.ExecuteScalar() as string;

                        //WHERE Gridid=7 group by TabID ,ProductReferenceID ,BlockID,GridID,RowID,RowValueGUID,Sort
                        insertIntoGridTable = " insert  into  " + gridTablename + " " + rootLevelquery.Replace("WHERE", replaceWHERE);

                        try
                        {
                            // SqlContext.Pipe.Send("exception insertcmd=" + insertIntoGridTable);
                            SqlCommand insertcmd = new SqlCommand(insertIntoGridTable, conn);

                            insertcmd.ExecuteNonQuery();


                            CLROutput.OutputDebug("insertIntoGridTable=" + insertIntoGridTable, conn);
                        }
                        catch (Exception ex)
                        {
                            // SqlContext.Pipe.Send("exception insertcmd=" + insertIntoGridTable);


                            CLROutput.OutputDebug("exception insertcmd failed=" + insertIntoGridTable + ex.ToString(), conn);
                        }
                    }
                }
            }

            #endregion
        }
        public static void DoSynchronizeUserDefineTableToDW(int entityID)
        {
            using (SqlConnection conn = new SqlConnection(PLMConstantString.PLM_APP_ConnectionString))
            {
                conn.Open();


                string tabQuery = @"select  RootlevelselectSQLscript from " + PLMConstantString.PLM_DW_TabGridScripContainerTable + " where EntityID=" + entityID + " and IsPassValidation =1";

                SqlCommand cmdQueryTabNameAndSelectRootlevel = new SqlCommand(tabQuery, conn);
                string     sQLTabLevelSelect = cmdQueryTabNameAndSelectRootlevel.ExecuteScalar() as string;



                string tabTablename = PLMSDWStoredProcedures.EntityTableName[entityID];



                if (tabTablename != string.Empty)
                {
                    string deleteOLDValue = string.Format(" delete {0}  ", tabTablename);

                    SqlCommand deletcmd = new SqlCommand(deleteOLDValue, conn);


                    CLROutput.OutputDebug("before delete Entity OLDValue=" + deleteOLDValue, conn);



                    try
                    {
                        deletcmd.ExecuteNonQuery();

                        CLROutput.OutputDebug("after delete ok deleteOLDValue=" + deleteOLDValue, conn);
                    }
                    catch (Exception ex)
                    {
                        CLROutput.OutputDebug("delete failed deleteOLDValue=" + deleteOLDValue + ex.ToString(), conn);
                    }



                    string inserIntoSelect = " insert  into " + tabTablename + "  " + sQLTabLevelSelect;

                    CLROutput.OutputDebug("before inserIntoSelect=" + inserIntoSelect, conn);



                    try
                    {
                        SqlCommand insertcmd = new SqlCommand(inserIntoSelect, conn);
                        insertcmd.ExecuteNonQuery();


                        CLROutput.OutputDebug("after insert ok   inserIntoSelect=" + inserIntoSelect, conn);
                    }
                    catch (Exception ex)
                    {
                        CLROutput.OutputDebug("exception insertcmd failed=" + inserIntoSelect + ex.ToString(), conn);
                    }
                }
            }
        }
Exemplo n.º 23
0
        public static void GetGradingSizeValue(int tabId, int currentGridBlockId, int referenceId)
        {
            //if (string.IsNullOrEmpty(referenceId))
            //    return;

            PdmBlockClrDto dmBlockClrDto = PdmCacheManager.DictBlockCache[currentGridBlockId];

            if (dmBlockClrDto.BlockPdmGridDto == null)
            {
                return;
            }

            bool      IsGetAliasname            = true;
            DataTable gridcolumnResultDataTable = PLMSGetGridValueHeler.LoadVariousGridColumnValue(tabId, currentGridBlockId, referenceId.ToString(), true, dmBlockClrDto, false, true, IsGetAliasname);

            int baseSizeIndexFromZero = 0;
            int totalSizeNumber       = 0;



            using (SqlConnection conn = new SqlConnection(PLMConstantString.PLM_APP_ConnectionString))
            {
                //SqlContext.
                conn.Open();
                DataAcessHelper.ExecuteReadUnCommmited(conn);
                PLMSpecGradingHelper.GetSpecSizeRunTable(referenceId, conn, out baseSizeIndexFromZero, out totalSizeNumber);
                CLROutput.OutputDebug("baseSizeIndexFromZero" + baseSizeIndexFromZero.ToString() + "totalSizeNumber" + totalSizeNumber.ToString());

                DataAcessHelper.ExecuteReadCommmited(conn);
            }

            PdmGridClrDto aPdmGridClrDto = dmBlockClrDto.BlockPdmGridDto;

            int baseSizeColumnId = aPdmGridClrDto[GridRegister.GridSpecGrading.GradingBaseSize].GridColumnId;

            List <DataColumn> gradingSizeNameList = new List <DataColumn>();
            DataColumn        baseSizeColumn      = null;

            foreach (DataColumn column in gridcolumnResultDataTable.Columns)
            {
                if (column.ColumnName.StartsWith(GridRegister.GridSpecGrading.GradingSize))
                {
                    gradingSizeNameList.Add(column);
                }
                if (column.ColumnName.EndsWith("_" + baseSizeColumnId))
                {
                    baseSizeColumn = column;
                }
            }


            //GridRegister.GridSpecGrading.


            foreach (DataRow dataRow in gridcolumnResultDataTable.Rows)
            {
                List <double> gradingValue = new List <double>();
                List <String> columnName   = new List <string>();
                double        basesize     = ControlTypeValueConverter.ConvertValueToDoubleWithDefautZero(dataRow[baseSizeColumn.ColumnName]);

                for (int i = 1; i <= totalSizeNumber; i++)
                {
                    foreach (DataColumn sizecolumn in gradingSizeNameList)
                    {
                        string baseSizeColumnName = GridRegister.GridSpecGrading.GradingSize + i.ToString() + "_";
                        if (sizecolumn.ColumnName.StartsWith(baseSizeColumnName))
                        {
                            double value = ControlTypeValueConverter.ConvertValueToDoubleWithDefautZero(dataRow[sizecolumn.ColumnName]);

                            gradingValue.Add(value);
                            columnName.Add(sizecolumn.ColumnName);
                        }
                    }
                }

                List <double> newValueList = PLMSpecGradingHelper.CaculateSizeValueWithGradingValue(gradingValue, basesize, baseSizeIndexFromZero);
                for (int i = 0; i < totalSizeNumber; i++)
                {
                    string columnNmae = columnName[i];
                    string value      = newValueList[i].ToString();

                    dataRow[columnNmae] = value;
                }
            }


            List <DataColumn> needConvertColumn = new List <DataColumn>();


            foreach (DataColumn column in gridcolumnResultDataTable.Columns)
            {
                int baseSizeId = aPdmGridClrDto[GridRegister.GridSpecGrading.GradingBaseSize].GridColumnId;

                if (column.ColumnName.EndsWith("_" + baseSizeColumnId))
                {
                    needConvertColumn.Add(column);
                }

                int tolColumnId = aPdmGridClrDto[GridRegister.GridSpecGrading.Tolerance].GridColumnId;

                if (column.ColumnName.EndsWith("_" + tolColumnId))
                {
                    needConvertColumn.Add(column);
                }

                for (int i = 1; i <= 20; i++)
                {
                    int sizeColumnIdId = aPdmGridClrDto[GridRegister.GridSpecGrading.GradingSize + i.ToString()].GridColumnId;
                    if (column.ColumnName.EndsWith("_" + sizeColumnIdId))
                    {
                        needConvertColumn.Add(column);
                    }
                }
            }


            // need to get the bock size and unit of mesaure;
            //DefaultPOMUnitOfMeasure	1:INch, 2: Cm

            int?pomUnitOfmeasure = GetReferencePomOfUnitMeasure(referenceId);

            if (pomUnitOfmeasure.HasValue && pomUnitOfmeasure.Value == 1)
            {
                ConvertCMDatatableToInch(gridcolumnResultDataTable, needConvertColumn);
            }
            else // NO VALUE, NEED TO CHECK DEFAULT VALUE
            {
                if (PLMConstantString.DictPdmSetup["DefaultPOMUnitOfMeasure"].SetupValue == "1")
                {
                    ConvertCMDatatableToInch(gridcolumnResultDataTable, needConvertColumn);
                }
            }



            CLROutput.SendDataTable(gridcolumnResultDataTable);
        }
Exemplo n.º 24
0
        internal static void SetDepdentMasterEntityColumn(PdmGridClrDto aPdmGridEntity, DataTable toReturnDcuTable)
        {
            //var dictSysDefineMasterEntityColumnIdEntityIds = aPdmGridEntity.MasterEntityColumn.Where(col => col.EntityId.HasValue && col.EntityId.Value < 3000).ToDictionary(col => col.GridColumnId, col => col.EntityId.Value);

            Dictionary <int, int> dictUserDefineMasterEntityColumnIdEntityIds = new Dictionary <int, int>();

            foreach (var column in aPdmGridEntity.MasterEntityColumn)
            {
                if (column.EntityId.HasValue)
                {
                    int entityId       = column.EntityId.Value;
                    int masterColumnId = column.GridColumnId;

                    PdmEntityBlClrDto aPdmEntityBlClrDto = PdmCacheManager.DictPdmEntityBlEntity[entityId];
                    if (aPdmEntityBlClrDto.EntityType == (int)EmEntityType.SystemDefineTable)
                    {
                        // int entityId = columnIdEntity.Value;

                        List <string> columnNames = new List <string>();
                        if (aPdmGridEntity.MasterEntityDepdentColumn.ContainsKey(masterColumnId))
                        {
                            columnNames = aPdmGridEntity.MasterEntityDepdentColumn[masterColumnId].Where(o => !string.IsNullOrEmpty(o.InternalCode)).Select(o => o.InternalCode).ToList();
                            DataTable aDtResult = PLMSEntityClrBL.GetMutipleSysDefineEntityRowValue(entityId, columnNames);
                            ProcessSystemDefineEntityColumn(aPdmGridEntity, toReturnDcuTable, aDtResult, masterColumnId);
                        }
                    }
                    else if (aPdmEntityBlClrDto.EntityType == (int)EmEntityType.UserDefineTable)
                    {
                        dictUserDefineMasterEntityColumnIdEntityIds.Add(masterColumnId, entityId);
                    }
                }
            }

            List <int> userDefineColumnIds = new List <int>();

            foreach (var columnIdEntity in dictUserDefineMasterEntityColumnIdEntityIds)
            {
                int masterColumnId = columnIdEntity.Key;
                int entityId       = columnIdEntity.Value;

                var pdmUserDefineEntity = PdmCacheManager.DictPdmEntityBlEntity[entityId];

                if (aPdmGridEntity.MasterEntityDepdentColumn.ContainsKey(masterColumnId))
                {
                    // if (aDtcolumn.UserDefineEntityColumnId.ToString() == dependentEntityColumn.InternalCode)
                    var columnids = aPdmGridEntity.MasterEntityDepdentColumn[masterColumnId]
                                    .Where(o => !string.IsNullOrEmpty(o.InternalCode))
                                    .Select(o => int.Parse(o.InternalCode.Trim()));

                    userDefineColumnIds.AddRange(columnids);
                }
            }
            if (userDefineColumnIds.Count > 0)
            {
                // Key: EntityId, vlaue
                Dictionary <int, List <SimpleUserDefineEntityRow> > result = PLMSEntityClrBL.GetDictEntityUserDefineRows(dictUserDefineMasterEntityColumnIdEntityIds.Values.ToList(), userDefineColumnIds);

                foreach (var columnIdEntity in dictUserDefineMasterEntityColumnIdEntityIds)
                {
                    int masterColumnId = columnIdEntity.Key;
                    int entityId       = columnIdEntity.Value;
                    if (result.ContainsKey(entityId))
                    {
                        List <SimpleUserDefineEntityRow> listRow = result[entityId];

                        CLROutput.OutputDebug("masterColumnId =" + masterColumnId);

                        ProcessUserDefineEntityColumn(aPdmGridEntity, toReturnDcuTable, listRow, masterColumnId);
                    }
                }
            }
        }
Exemplo n.º 25
0
        static PLMConstantString()
        {
            // Initianize context FROM PLM App
            using (SqlConnection conn = new SqlConnection("context connection=true"))
            {
                conn.Open();

                ;

                //PLMAPPDBConnection

                string aqueryDwConn = " SELECT SetupValue FROM pdmsetup WHERE setupCode='PLMDWDBConnection'";
                System.Data.DataTable resultTabelPLMDWDB = DataAcessHelper.GetDataTableQueryResult(conn, aqueryDwConn);

                if (resultTabelPLMDWDB.Rows.Count > 0)
                {
                    PLM_DW_ConnectionString = resultTabelPLMDWDB.Rows[0]["SetupValue"].ToString();
                }

                CLROutput.OutputDebug("PLM_DW_ConnectionString=" + PLM_DW_ConnectionString);



                //PLMAPPDBConnection
                string aqueryAppConn = " SELECT SetupValue FROM pdmsetup WHERE setupCode='PLMAPPDBConnection'";
                System.Data.DataTable resultTabelPLMAPPDB = DataAcessHelper.GetDataTableQueryResult(conn, aqueryAppConn);


                if (resultTabelPLMAPPDB.Rows.Count > 0)
                {
                    PLM_APP_ConnectionString = resultTabelPLMAPPDB.Rows[0]["SetupValue"].ToString();
                }

                CLROutput.OutputDebug("PLM_APP_ConnectionString=" + PLM_APP_ConnectionString);



                //Swap_DBConnectin string

                var regex = new Regex("Catalog=" + conn.Database, RegexOptions.IgnoreCase);
                PLM_DW_SchemeTemDBMSConnectionString = regex.Replace(PLM_APP_ConnectionString, "Catalog=" + PLM_DW_SchemeTemDBMS);



                // PLM_DW_SwapDBFilePathConn
                string PLM_DW_SwapDBFilePathConn = " SELECT SetupValue FROM pdmsetup WHERE setupCode='PLMDWSwapDBFilePath'";
                System.Data.DataTable resultTabelPLMDWSwapDBFilePath = DataAcessHelper.GetDataTableQueryResult(conn, PLM_DW_SwapDBFilePathConn);


                if (resultTabelPLMDWSwapDBFilePath.Rows.Count > 0)
                {
                    PLM_DW_SwapDBFilePath = resultTabelPLMDWSwapDBFilePath.Rows[0]["SetupValue"].ToString();
                }
                CLROutput.OutputDebug("PLM_DW_SwapDBFilePath=" + PLM_DW_SwapDBFilePath);



                ////Ex-chagne-dB
                string exChangeDBConn = " SELECT SetupValue FROM pdmsetup WHERE setupCode='PLMExChangeDatabaseConnection'";
                System.Data.DataTable resultTabelexChangeDBConn = DataAcessHelper.GetDataTableQueryResult(conn, exChangeDBConn);

                if (resultTabelexChangeDBConn.Rows.Count > 0)
                {
                    PLM_ExChangeDatabase_ConnectionString = resultTabelexChangeDBConn.Rows[0]["SetupValue"].ToString();
                }
                CLROutput.OutputDebug("PLM_ExChangeDatabase_ConnectionString=" + PLM_ExChangeDatabase_ConnectionString);


                //

                DictPdmSetup = PdmSetupDal.GetAllList(conn).Where(o => !string.IsNullOrEmpty(o.SetupCode)).ToDictionary(o => o.SetupCode, o => o);
            }
        }
Exemplo n.º 26
0
        private static Dictionary <int, List <LookupItemDto> > LoadSysDefineLookupItemFromDabaBase(List <PdmEntityBlClrDto> sysDefineEntityList, SqlConnection conn)
        {
            Dictionary <int, List <LookupItemDto> > toReturn = new Dictionary <int, List <LookupItemDto> >();

            Dictionary <string, string> dictTableNameAndQuery = new Dictionary <string, string>();

            foreach (var aPdmEntityDto in sysDefineEntityList)
            {
                string systemQueryTable = PLMSEntityClrBL.GetSysDefineQueryIDAndDisplay(aPdmEntityDto);

                //    CLROutput.OutputDebug("aPdmEntityDto.SysTableName systemQueryTable" + aPdmEntityDto.EntityId + "=" + systemQueryTable);


                if (string.IsNullOrEmpty(systemQueryTable))
                {
                    continue;
                }

                //    CLROutput.OutputDebug("aPdmEntityDto.SysTableName" + aPdmEntityDto.EntityId + "=" + aPdmEntityDto.EntityCode + aPdmEntityDto.SysTableName);

                if (!String.IsNullOrEmpty(aPdmEntityDto.SysTableName))
                {
                    if (!dictTableNameAndQuery.ContainsKey(aPdmEntityDto.SysTableName))
                    {
                        dictTableNameAndQuery.Add(aPdmEntityDto.SysTableName, systemQueryTable);
                    }
                }
            }


            foreach (string tablname in dictTableNameAndQuery.Keys)
            {
                string queryTAble = dictTableNameAndQuery[tablname];

                List <LookupItemDto> listDto = GetOneSystemDefinTableLookupItems(conn, queryTAble);
                foreach (PdmEntityBlClrDto SysEntityDto in sysDefineEntityList)
                {
                    string sysTableName = SysEntityDto.SysTableName;

                    //  CLROutput.SendDataTable(datatable);

                    if (sysTableName == tablname)
                    {
                        toReturn.Add(SysEntityDto.EntityId, listDto);

                        //  CLROutput.OutputDebug("before EntityCode " + SysEntityDto.EntityCode + " tableName="+ sysTableName + "=" + " lastScaltime=" );
                        //Important
                        //Important
                        string lastScaltime = GetLastChangeCheckSum(conn, tablname);

                        //F**k conn.ConnectionString will retur no password !!!!
                        //  SysEntityDto.ConnectInfo = conn.ConnectionString;

                        CLROutput.OutputDebug("SysEntityDto.ConnectInfo = conn.ConnectionString" + SysEntityDto.ConnectInfo);


                        SysEntityDto.LastScanCheckSum = lastScaltime;

                        CLROutput.OutputDebug(sysTableName + " lastScaltime :" + lastScaltime);
                    }
                }
            }


            return(toReturn);
        }