예제 #1
0
        //////////////////////////////////////////////////////////////////////////////

        public tableListWord readOutputTable(TextReader reader, SetOfTableList tables)
        {
            tableListWord tableTmp = null;
            string        line     = null;

            string[] strtmps = null;
            int      col;

            if ((line = reader.ReadLine()) != null)
            {
                tableTmp = new tableListWord(line);
                if ((line = reader.ReadLine()) != null)
                {
                    strtmps = line.Split(new char[] { '\t' });
                    col     = strtmps.Length;
                    tableTmp.addHeader(strtmps);
                    if (((line = reader.ReadLine()) != null))
                    {
                        tableTmp.addColWidth(line.Split(new char[] { '\t' }));
                    }
                    while ((line = reader.ReadLine()) != null)
                    {
                        object[] objtmps = new object[col];
                        int      i = 0, j = 0;
                        bool     flag = true;
                        /* read first column */
                        while (i < line.Length && flag)
                        {
                            if (line[i] == '\t')
                            {
                                objtmps[0] = parseSpecialSymbol(line.Substring(0, i));
                                flag       = false;
                            }
                            i++;
                        }
                        j = i;
                        // read remained column (may be reconsider about ';')
                        // next version should use readFormat since 1st col
                        int c = 1;
                        while (i < line.Length)
                        {
                            if (line[i] == ';' && (i == line.Length - 1 || line[i + 1] == '\t'))
                            { // end column? && last column || there are more column
                                if (c < col)
                                {
                                    objtmps[c] = readFormat(line.Substring(j, i - j), tables); //fixed
                                }
                                c++;
                                i++;
                                j = i + 1;
                            }
                            i++;
                        }
                        tableTmp.addRow(objtmps);
                    }
                }
            }
            return(tableTmp);
        }
예제 #2
0
        public object translate(string text, string mode, SetOfTableList tables)
        { /* please check undefined case */
          //String ans = "";

            /* mode case */
            if (mode.Equals("s") || mode.Equals("p"))
            {
                /* get table name */
                int i = 0;
                int k = 3;
                while (i < text.Length && k != 0)
                {
                    if (text[i] == '@')
                    {
                        k--;
                    }
                    i++;
                }
                if (i == text.Length)
                {
                    return(null);
                }
                string tableName = text.Substring(0, i - 1);
                /* get key */
                int j = i;
                k = 1;
                while (i < text.Length && k != 0)
                {
                    if (text[i] == '@')
                    {
                        k--;
                    }
                    i++;
                }
                string key = text.Substring(j, i - j - 1);  //fixed

                /* get indexField */

                /*j = i;
                 * k = 1;
                 * while (i < text.length() && k != 0) {
                 *  if (text.charAt(i) == '@') {
                 *      k--;
                 *  }
                 *  i++;
                 * }*/
                int indexField = int.Parse(text.Substring(i));  /// may use tryParse

                tableList table = tables.getTableList(tableName);
                if (table != null)
                {
                    if (mode.Equals("s"))
                    {
                        return(table.searchField(key, indexField));
                    }
                    else if (mode.Equals("p"))
                    {
                        return(table.searchPrefixField(key, indexField));
                    }
                }
            }
            else if (mode.Equals("T"))  //////////////////////////////////////////////////////////////////////////
            {
                /* get table name */
                int i = 0;
                int k = 3;
                while (i < text.Length && k != 0)
                {
                    if (text[i] == '@')
                    {
                        k--;
                    }
                    i++;
                }
                if (i == text.Length)
                {
                    return(null);
                }
                string tableName = text.Substring(0, i - 1);
                /* get a sequence of column */
                int j = i;
                k = 1;
                int c = 0;
                while (i < text.Length && k != 0)
                {
                    if (text[i] == '@')
                    {
                        k--;
                    }
                    else if (text[i] == '-')
                    {
                        c++;
                    }
                    i++;
                }
                int[]    col      = new int[c + 1];
                string[] header   = new string[c + 1];
                string[] colWidth = null;
                string   strtmp   = text.Substring(j, i - j - 1); //fixed
                c = 0;
                k = 0;
                for (int m = 0; m < strtmp.Length; m++)
                {
                    if (strtmp[m] == '-')
                    {
                        col[c] = int.Parse(strtmp.Substring(k, m - k));     /// may use tryParse fixed//fixed
                        c++;
                        k = m + 1;
                    }
                }
                col[c] = int.Parse(strtmp.Substring(k));    /// may use tryParse

                /* get header */
                ///////////////////////////////////
                j = i;
                k = 1;
                while (i < text.Length && k != 0)
                {
                    if (text[i] == '@')
                    {
                        k--;
                    }
                    i++;
                }
                if (k == 0) // add column width
                {
                    strtmp = text.Substring(j, i - j - 1);

                    colWidth = new string[header.Length];
                    c        = 0;
                    k        = 0;
                    string strtmp2 = text.Substring(i);
                    for (int m = 0; m < strtmp2.Length; m++)
                    {
                        if (strtmp2[m] == '-')
                        {
                            colWidth[c] = strtmp2.Substring(k, m - k);     //fixed
                            c++;
                            k = m + 1;
                        }
                    }
                    colWidth[c] = strtmp2.Substring(k);
                }
                else
                {
                    strtmp = text.Substring(j);
                }

                ///////////////////////////////////
                c = 0;
                k = 0;
                //strtmp = text.Substring(i);
                for (int m = 0; m < strtmp.Length; m++)
                {
                    if (strtmp[m] == '-')
                    {
                        header[c] = strtmp.Substring(k, m - k);     //fixed
                        c++;
                        k = m + 1;
                    }
                }
                header[c] = strtmp.Substring(k);

                tableList table = tables.getTableList(tableName);
                if (table != null)
                {
                    tableListWord tlwtmp = new tableListWord(table, col);   //// may be also add border
                    tlwtmp.addHeader(header);
                    if (colWidth != null)
                    {
                        tlwtmp.addColWidth(colWidth);
                    }
                    return(tlwtmp);       ////////////////////////////////////// change
                }
            }
            else if (mode.Equals("e"))
            {
                /* get table name */
                int i = 0;
                int k = 3;
                while (i < text.Length && k != 0)
                {
                    if (text[i] == '@')
                    {
                        k--;
                    }
                    i++;
                }
                if (i == text.Length)
                {
                    return(null);
                }
                string tableName = text.Substring(0, i - 1);

                /* get indexField */
                int j = i;
                k = 1;
                while (i < text.Length && k != 0)
                {
                    if (text[i] == '@')
                    {
                        k--;
                    }
                    i++;
                }
                //String acol = text.substring(j, i-1);
                int indexField = int.Parse(text.Substring(j, i - j - 1));   /// may use tryParse//fixed

                /* get a sequence of element */
                j = i;
                k = 1;
                int c = 0;
                while (i < text.Length && k != 0)
                {
                    if (text[i] == '|')
                    {
                        if (i + 1 >= text.Length)
                        {
                            return(null);
                        }
                        else if (text[i + 1] == '|')
                        {
                            i++;
                        }
                        else if (text[i + 1] == '-')
                        {
                            i++;
                        }
                        else
                        {
                            return(null);
                        }
                    }
                    else if (text[i] == '@')
                    {
                        k--;
                    }
                    else if (text[i] == '-')
                    {
                        c++;
                    }
                    i++;
                }
                string[] element = new string[c + 1];
                string[] value   = new string[c + 2];
                string   strtmp  = text.Substring(j, i - j - 1); //fixed
                for (int z = 0; z <= c; z++)
                {
                    element[z] = "";
                    value[z]   = "";
                }
                value[c + 1] = "";

                c = 0;
                k = 0;
                for (int m = 0; m < strtmp.Length; m++)
                {
                    if (strtmp[m] == '|')
                    {
                        if (m + 1 >= strtmp.Length)
                        {
                            return(null);
                        }
                        else if (strtmp[m + 1] == '|')
                        {
                            element[c] += strtmp.Substring(k, m - k) + "|";
                            m++;
                            k = m + 1;
                        }
                        else if (strtmp[m + 1] == '-')
                        {
                            element[c] += strtmp.Substring(k, m - k) + "-";
                            m++;
                            k = m + 1;
                        }
                        else
                        {
                            return(null);
                        }
                    }
                    else if (strtmp[m] == '-')
                    {
                        element[c] += strtmp.Substring(k, m - k); //fixed
                        c++;
                        k = m + 1;
                    }
                }
                element[c] += strtmp.Substring(k);

                /* get a sequence of value */
                c      = 0;
                k      = 0;
                strtmp = text.Substring(i);
                for (int m = 0; m < strtmp.Length; m++)
                {
                    if (strtmp[m] == '|')
                    {
                        if (m + 1 >= strtmp.Length)
                        {
                            return(null);
                        }
                        else if (strtmp[m + 1] == '|')
                        {
                            value[c] += strtmp.Substring(k, m - k) + "|";
                            m++;
                            k = m + 1;
                        }
                        else if (strtmp[m + 1] == '-')
                        {
                            value[c] += strtmp.Substring(k, m - k) + "-";
                            m++;
                            k = m + 1;
                        }
                        else
                        {
                            return(null);
                        }
                    }
                    else if (strtmp[m] == '-')
                    {
                        value[c] += strtmp.Substring(k, m - k);  //fixed
                        c++;
                        k = m + 1;
                    }
                }
                if (c == value.Length - 1)
                { // there is else case
                    value[c] += strtmp.Substring(k);
                }
                else if (c == value.Length - 2)
                { // non else case
                    value[c]    += strtmp.Substring(k);
                    value[c + 1] = "";
                }

                tableList table = tables.getTableList(tableName);
                if (table != null)
                {
                    object[] tmps = table.getRow(0);
                    if (indexField < tmps.Length && tmps[indexField] is string)
                    {
                        for (j = 0; j < element.Length; j++)
                        {
                            if (((string)tmps[indexField]).Equals(element[j]))
                            {
                                return(value[j]);
                            }
                        }
                        return(value[j]);
                    }
                }

                return(null);
            }
            else if (mode.Equals("E"))
            {
                /* get table name */
                int i = 0;
                int k = 3;
                while (i < text.Length && k != 0)
                {
                    if (text[i] == '@')
                    {
                        k--;
                    }
                    i++;
                }
                if (i == text.Length)
                {
                    return(null);
                }
                string tableName = text.Substring(0, i - 1);

                /* get key indexField */
                int j = i;
                k = 1;
                while (i < text.Length && k != 0)
                {
                    if (text[i] == '@')
                    {
                        k--;
                    }
                    i++;
                }
                //String acol = text.substring(j, i-1);
                int keyIndexField = int.Parse(text.Substring(j, i - j - 1));   /// may use tryParse//fixed

                /* get key */
                j = i;
                k = 1;
                while (i < text.Length && k != 0)
                {
                    if (text[i] == '@')
                    {
                        k--;
                    }
                    i++;
                }
                string key = text.Substring(j, i - j - 1);  //fixed

                /* get indexField */
                j = i;
                k = 1;
                while (i < text.Length && k != 0)
                {
                    if (text[i] == '@')
                    {
                        k--;
                    }
                    i++;
                }
                int indexField = int.Parse(text.Substring(j, i - j - 1));   /// may use tryParse//fixed

                /* get a sequence of element */
                j = i;
                k = 1;
                int c = 0;
                while (i < text.Length && k != 0)
                {
                    if (text[i] == '|')
                    {
                        if (i + 1 >= text.Length)
                        {
                            return(null);
                        }
                        else if (text[i + 1] == '|')
                        {
                            i++;
                        }
                        else if (text[i + 1] == '-')
                        {
                            i++;
                        }
                        else
                        {
                            return(null);
                        }
                    }
                    else if (text[i] == '@')
                    {
                        k--;
                    }
                    else if (text[i] == '-')
                    {
                        c++;
                    }
                    i++;
                }
                string[] element = new string[c + 1];
                string[] value   = new string[c + 3];
                string   strtmp  = text.Substring(j, i - j - 1); //fixed
                for (int z = 0; z <= c; z++)
                {
                    element[z] = "";
                    value[z]   = "";
                }
                value[c + 1] = "";

                c = 0;
                k = 0;
                for (int m = 0; m < strtmp.Length; m++)
                {
                    if (strtmp[m] == '|')
                    {
                        if (m + 1 >= strtmp.Length)
                        {
                            return(null);
                        }
                        else if (strtmp[m + 1] == '|')
                        {
                            element[c] += strtmp.Substring(k, m - k) + "|";
                            m++;
                            k = m + 1;
                        }
                        else if (strtmp[m + 1] == '-')
                        {
                            element[c] += strtmp.Substring(k, m - k) + "-";
                            m++;
                            k = m + 1;
                        }
                        else
                        {
                            return(null);
                        }
                    }
                    else if (strtmp[m] == '-')
                    {
                        element[c] += strtmp.Substring(k, m - k); //fixed
                        c++;
                        k = m + 1;
                    }
                }
                element[c] += strtmp.Substring(k);

                /* get a sequence of value */
                c      = 0;
                k      = 0;
                strtmp = text.Substring(i);
                for (int m = 0; m < strtmp.Length; m++)
                {
                    if (strtmp[m] == '|')
                    {
                        if (m + 1 >= strtmp.Length)
                        {
                            return(null);
                        }
                        else if (strtmp[m + 1] == '|')
                        {
                            value[c] += strtmp.Substring(k, m - k) + "|";
                            m++;
                            k = m + 1;
                        }
                        else if (strtmp[m + 1] == '-')
                        {
                            value[c] += strtmp.Substring(k, m - k) + "-";
                            m++;
                            k = m + 1;
                        }
                        else
                        {
                            return(null);
                        }
                    }
                    else if (strtmp[m] == '-')
                    {
                        value[c] += strtmp.Substring(k, m - k);  //fixed
                        c++;
                        k = m + 1;
                    }
                }
                if (c == value.Length - 1)
                { // there is else case
                    value[c] += strtmp.Substring(k);
                }
                else if (c == value.Length - 2)
                { // non else case
                    value[c]    += strtmp.Substring(k);
                    value[c + 1] = "";
                }
                else if (c == value.Length - 3)
                { // non else case
                    value[c]    += strtmp.Substring(k);
                    value[c + 1] = "";
                    value[c + 2] = "";
                }

                tableList table = tables.getTableList(tableName);
                if (table != null)
                {
                    strtmp = (string)table.searchField(keyIndexField, key, indexField);
                    if (strtmp != null)
                    {
                        for (j = 0; j < element.Length; j++)
                        {
                            if (strtmp.Equals(element[j]))
                            {
                                return(value[j]);
                            }
                        }
                        return(value[j]);
                    }
                    else
                    {
                        return(value[value.Length - 1]);
                    }
                }

                return(null);
            }
            else if (mode.Equals("c"))
            {
                /* get table name */
                int i = 0;
                int k = 3;
                while (i < text.Length && k != 0)
                {
                    if (text[i] == '@')
                    {
                        k--;
                    }
                    i++;
                }
                if (i == text.Length)
                {
                    return(null);
                }
                string tableName = text.Substring(0, i - 1);
                /* get indexField */
                int       indexField = int.Parse(text.Substring(i)); /// may use tryParse
                tableList table      = tables.getTableList(tableName);
                if (table != null)
                {
                    object[] tmps = table.getRow(0);
                    if (indexField < tmps.Length && tmps[indexField] is string)
                    {
                        return((string)tmps[indexField]);
                    }
                }
            }
            else if (mode.Equals("x"))
            {
                /* get table name */
                int i = 0;
                int k = 3;
                while (i < text.Length && k != 0)
                {
                    if (text[i] == '@')
                    {
                        k--;
                    }
                    i++;
                }
                if (i == text.Length)
                {
                    return(null);
                }
                string tableName = text.Substring(0, i - 1);
                /* get a sequence of output */
                string[] output = new string[2];
                string   strtmp = text.Substring(i);
                int      c      = 0;
                k = 0;
                for (int m = 0; m < strtmp.Length; m++)
                {
                    if (strtmp[m] == '-')
                    {
                        output[c] = strtmp.Substring(k, m - k); //fixed
                        c++;
                        k = m + 1;
                    }
                }
                output[c] = strtmp.Substring(k);

                tableList table = tables.getTableList(tableName);
                if (table == null)
                {
                    return(output[0]);
                }
                else
                {
                    return(output[1]);
                }
            }
            else if (mode.Equals("X"))
            {
                /* get table name */
                int i = 0;
                int k = 3;
                while (i < text.Length && k != 0)
                {
                    if (text[i] == '@')
                    {
                        k--;
                    }
                    i++;
                }
                if (i == text.Length)
                {
                    return(null);
                }
                string tableName = text.Substring(0, i - 1);
                /* get key */
                int j = i;
                k = 1;
                while (i < text.Length && k != 0)
                {
                    if (text[i] == '@')
                    {
                        k--;
                    }
                    i++;
                }
                string key = text.Substring(j, i - j - 1);  //fixed

                /* get indexField */
                j = i;
                k = 1;
                while (i < text.Length && k != 0)
                {
                    if (text[i] == '@')
                    {
                        k--;
                    }
                    i++;
                }
                int indexField = int.Parse(text.Substring(j, i - j - 1));   /// may use tryParse//fixed

                /* get a sequence of output */
                string[] output = new string[2];
                string   strtmp = text.Substring(i);
                int      c      = 0;
                k = 0;
                for (int m = 0; m < strtmp.Length; m++)
                {
                    if (strtmp[m] == '-')
                    {
                        output[c] = strtmp.Substring(k, m - k); //fixed
                        c++;
                        k = m + 1;
                    }
                }
                output[c] = strtmp.Substring(k);

                tableList table = tables.getTableList(tableName);
                if (table != null)
                {
                    object tmp = table.searchField(indexField, key, indexField);
                    if (tmp != null && tmp is string && key.Equals((string)tmp))
                    {
                        return(output[1]);
                    }
                }
                return(output[0]);
            }

            return(null);
        }
예제 #3
0
        }// End of PM configuration

        // Function that set and get Database config file and insert to database.
        public void databaseConfigGen(string projectCode, string quarter)
        {
            string timeStamp = GetTimestamp(DateTime.Now);
            string tempPath = Path.Combine(System.AppDomain.CurrentDomain.BaseDirectory.ToString(), "TEMP", "DB_" + timeStamp);
            Directory.CreateDirectory(tempPath);
            string fileName = DBConfigUpload.FileName.ToString();
            string filePath = Path.Combine(tempPath, fileName);
            DBConfigUpload.PostedFile.SaveAs(Path.Combine(tempPath, fileName));

            string backupDatabaseFile = BackupDatabaseFile.FileName.ToString();
            string backupDatabaseFilePath = Path.Combine(tempPath, backupDatabaseFile);
            BackupDatabaseFile.PostedFile.SaveAs(Path.Combine(tempPath, backupDatabaseFile));

            string backupControlFile = BackupControlFile.FileName.ToString();
            string backupControlFilePath = Path.Combine(tempPath, backupControlFile);
            BackupControlFile.PostedFile.SaveAs(Path.Combine(tempPath, backupControlFile));

            string backupArcheiveFile = BackupArchieveFile.FileName.ToString();
            string backupArcheiveFilePath = Path.Combine(tempPath, backupArcheiveFile);
            BackupArchieveFile.PostedFile.SaveAs(Path.Combine(tempPath, backupArcheiveFile));
            string backupDBF, backupCFF, backupALF;

            string alertFile = AlertLogFile.FileName.ToString();
            string alertFilePath = Path.Combine(tempPath, alertFile);
            AlertLogFile.PostedFile.SaveAs(Path.Combine(tempPath, alertFile));

            using (TextReader reader = File.OpenText(backupDatabaseFilePath)) {
                backupDBF = reader.ReadToEnd();                
            }

            using (TextReader reader = File.OpenText(backupControlFilePath))
            {
               backupCFF = reader.ReadToEnd();

            }

            using (TextReader reader = File.OpenText(backupArcheiveFilePath))
            {
               backupALF = reader.ReadToEnd();

            }
            dbHelper.InsertBackupDatabase(projectCode, quarter, backupDBF, backupCFF, backupALF);

            string alertLog;
            List<object> alertObj = new List<object>();
            using (TextReader reader = File.OpenText(alertFilePath))
            {
                while ((alertLog = reader.ReadLine()) != null)
                {
                    //if(alertLog.Contains("ora-"))
                       // alertObj.Add(alertLog);
                    dbHelper.InsertAlert(projectCode, quarter, alertLog);
                }
            }

             

            SetOfTableList tables = null;
            OracleInformation oracleInfo = new OracleInformation();

            using (TextReader logFile = File.OpenText(filePath))
            {
                tables = oracleInfo.readInputLog(logFile);
            }
                tableListWord tableWord;
                string binFolderPath = Server.MapPath("bin");
                string path = binFolderPath + "/Debug/config/4_1.txt";

            using (TextReader inFile = File.OpenText(path))
            {
                tableWord = oracleInfo.readOutputTable(inFile, tables);
                List<object[]> database4_1Obj = new List<object[]>();
                for (int k = 0; k < tableWord.getRowNumber(); k++)
                {
                    if (tableWord.getRow(k)[0].Equals("Temp tablespace size"))
                    {
                        object[] obj1 = (object[])tableWord.getRows()[k];
                        tableListWord obj2 = (tableListWord)obj1[1];
                        List<object[]> database4_1_1Obj = new List<object[]>();
                        for (int z = 0; z < obj2.getRows().Count; z++)
                        {
                            object[] subDetail = (object[])obj2.getRows()[z];
                            database4_1_1Obj.Add(new object[] { subDetail[0].ToString(), subDetail[1].ToString()});
                        }
                        dbHelper.InsertTempTableSize(projectCode, quarter, database4_1_1Obj);
                    }
                    else if (tableWord.getRow(k)[0].Equals("Tablespace size"))
                    {
                        object[] obj1 = (object[])tableWord.getRows()[k];
                        tableListWord obj2 = (tableListWord)obj1[1];
                        List<object[]> database4_1_2Obj = new List<object[]>();
                        for (int z = 0; z < obj2.getRows().Count; z++)
                        {
                            object[] subDetail = (object[])obj2.getRows()[z];
                            database4_1_2Obj.Add(new object[] { subDetail[0].ToString(), subDetail[1].ToString() });
                        }
                        dbHelper.InsertTableSize(projectCode, quarter, database4_1_2Obj);
                    }
                    else
                    {
                        database4_1Obj.Add(new object[] { tableWord.getRow(k)[0], tableWord.getRow(k)[1] });
                    }
                }
                dbHelper.InsertDatabaseConfiguration(projectCode, quarter, database4_1Obj);
            }
            path = binFolderPath + "/Debug/config/4_2.txt";
            using (TextReader inFile = File.OpenText(path))
            {
                tableWord = oracleInfo.readOutputTable(inFile, tables);
                List<object[]> database4_2Obj = new List<object[]>();
                for (int k = 0; k < tableWord.getRowNumber(); k++)
                {
                    database4_2Obj.Add(new object[] { tableWord.getRow(k)[0], tableWord.getRow(k)[1] });
                }
                dbHelper.InsertDatabaseParameter(projectCode, quarter, database4_2Obj);
            }   
            tableList tableTmp = null;
            tableTmp = tables.getTableList("4_4@Database file@1");
            if (tableTmp != null)
            {
                List<object[]> databaseFileList = new List<object[]>();
                tableWord = new tableListWord(tableTmp);
                for (int k = 0; k < tableWord.getRowNumber(); k++)
                {
                    databaseFileList.Add(new object[] { tableWord.getRow(k)[0], tableWord.getRow(k)[1], tableWord.getRow(k)[2], tableWord.getRow(k)[3], tableWord.getRow(k)[4], tableWord.getRow(k)[5] });
                }
                dbHelper.InsertDatabaseFile(projectCode, quarter, databaseFileList);
            }

            tableTmp = null;
            tableTmp = tables.getTableList("4_5@Temp file@1");
            if (tableTmp != null)
            {
                List<object[]> tempFileList = new List<object[]>();
                tableWord = new tableListWord(tableTmp);
                for (int k = 0; k < tableWord.getRowNumber(); k++)
                {
                    tempFileList.Add(new object[] { tableWord.getRow(k)[0], tableWord.getRow(k)[1], tableWord.getRow(k)[2], tableWord.getRow(k)[3], tableWord.getRow(k)[4], tableWord.getRow(k)[5] });
                }
                dbHelper.InsertTempFile(projectCode, quarter, tempFileList);
            }

            tableTmp = null;
            tableTmp = tables.getTableList("4_6@Redo log file@1");
            if (tableTmp != null)
            {
                List<object[]> redoLogList = new List<object[]>();
                tableWord = new tableListWord(tableTmp);
                /// Convert B to MB (***warning: available only MB is string that represent integer)
                for (int k = 0; k < tableWord.getRowNumber(); k++)
                {
                    object[] rowTmp = tableWord.getRow(k);
                    if (rowTmp[2] is string)
                    {
                        rowTmp[2] = (float.Parse((string)(rowTmp[2])) / (1024 * 1024)).ToString();
                        redoLogList.Add(new object[] { tableWord.getRow(k)[0], tableWord.getRow(k)[1], rowTmp[2]});
                    }
                    else
                    {
                        redoLogList.Add(new object[] { tableWord.getRow(k)[0], tableWord.getRow(k)[1], tableWord.getRow(k)[2] });
                    }
                }
                dbHelper.InsertRedoLogFile(projectCode, quarter, redoLogList);
            }
            tableTmp = null;
            tableTmp = tables.getTableList("4_7@Controlfile@1");
            if (tableTmp != null)
            {
                List<object> controlFileList = new List<object>();
                tableWord = new tableListWord(tableTmp);
                for (int k = 0; k < tableWord.getRowNumber(); k++)
                {
                    controlFileList.Add(tableWord.getRow(k)[0]);
                }
                dbHelper.InsertControlFile(projectCode, quarter, controlFileList);
            }

            tableTmp = null;
            tableTmp = tables.getTableList("4_8@Jobs@1");
            if (tableTmp != null)
            {
                List<object[]> dailyList = new List<object[]>();
                int[] indexA = { 1024, 3, 1024 };
                tableWord = new tableListWord(tableTmp, indexA);
                for (int k = 0; k < tableWord.getRowNumber(); k++)
                {
                    dailyList.Add(new object[] { tableWord.getRow(k)[0], tableWord.getRow(k)[1], tableWord.getRow(k)[2] });
                }
                dbHelper.InsertDiaryWorksheet(projectCode, quarter, dailyList);
            }
            path = binFolderPath + "/Debug/config/4_9.txt";
            using (TextReader inFile = File.OpenText(path))
            {
                tableWord = oracleInfo.readOutputTable(inFile, tables);
                List<object[]> monthLyList = new List<object[]>();
                for (int k = 0; k < tableWord.getRowNumber(); k++)
                {
                    monthLyList.Add(new object[] { tableWord.getRow(k)[0], tableWord.getRow(k)[1], tableWord.getRow(k)[2] });
                }
                dbHelper.InsertMonthlyWorksheet(projectCode, quarter, monthLyList);
            }

            //////////////////////////////////////////////////////////    O5    ////////////////////////////////////////////////////////// 
            
            path = binFolderPath + "/Debug/config/5_1.txt";
            using (TextReader inFile = File.OpenText(path))
            {
                tableWord = oracleInfo.readOutputTable(inFile, tables);
                List<object[]> performanceReview = new List<object[]>();

                for (int k = 0; k < tableWord.getRowNumber(); k++)
                {
                    if (k == 0)
                    {
                        object[] obj1 = (object[])tableWord.getRows()[k];
                        tableListWord obj2 = (tableListWord)obj1[1];
                        List<object[]> hitRatioList = new List<object[]>();
                        for (int z = 0; z < obj2.getRows().Count; z++)
                        {
                            object[] subDetail = (object[])obj2.getRows()[z];
                            hitRatioList.Add(new object[] {subDetail[0].ToString(), subDetail[1].ToString()});
                        }
                        dbHelper.InsertHitRatio(projectCode, quarter, hitRatioList);
                    }
                    else if (k == 1)
                    {
                        object[] obj1 = (object[])tableWord.getRows()[k];
                        tableListWord obj2 = (tableListWord)obj1[1];
                        List<object[]> pinRatioList = new List<object[]>();
                        for (int z = 0; z < obj2.getRows().Count; z++)
                        {
                            object[] subDetail = (object[])obj2.getRows()[z];
                            pinRatioList.Add(new object[] {subDetail[0].ToString(), subDetail[1].ToString(), subDetail[2].ToString() });
                        }
                        dbHelper.InsertHitRatio(projectCode, quarter, pinRatioList);
                    }
                    else if (k == 14)
                    {
                        object[] obj1 = (object[])tableWord.getRows()[k];
                        tableListWord obj2 = (tableListWord)obj1[1];
                        List<object[]> undoList = new List<object[]>();
                        for (int z = 0; z < obj2.getRows().Count; z++)
                        {
                            object[] subDetail = (object[])obj2.getRows()[z];
                            undoList.Add(new object[] { subDetail[0].ToString(), subDetail[1].ToString(), subDetail[2].ToString() });
                        }
                        dbHelper.InsertUndoSegmentsSize(projectCode, quarter, undoList);
                    }
                    else
                    {
                        performanceReview.Add(new object[] { tableWord.getRow(k)[0], tableWord.getRow(k)[1] });
                    }
                }
                dbHelper.InsertPerformanceReview(projectCode, quarter, performanceReview);
            }

            // Table fress space.
            tableTmp = null;
            tableTmp = tables.getTableList("6_1@Table free space@1");
            if (tableTmp != null)
            {
                tableWord = new tableListWord(tableTmp);
                List<object[]> list = new List<object[]>();
                for (int k = 0; k < tableWord.getRowNumber(); k++)
                {
                    list.Add(new object[] { tableWord.getRow(k)[0], tableWord.getRow(k)[1], tableWord.getRow(k)[2], tableWord.getRow(k)[3], tableWord.getRow(k)[4] });
                }
                dbHelper.InsertTablespaceFreespace(projectCode, quarter, list);
            }

            // Temptable and tablespace
            tableTmp = null;
            tableTmp = tables.getTableList("7_1@default tbs/temp per user@1");
            if (tableTmp != null)
            {
                List<object[]> list = new List<object[]>();
                tableWord = new tableListWord(tableTmp);
                for (int k = 0; k < tableWord.getRowNumber(); k++)
                {
                    list.Add(new object[] { tableWord.getRow(k)[0], tableWord.getRow(k)[1], tableWord.getRow(k)[2]});
                }
                dbHelper.InsertTablespaceAndTempTablespace(projectCode, quarter, list);
            }

            // Database registration Insert.
            tableTmp = null;
            tableTmp = tables.getTableList("8_1@dba registry@1");
            if (tableTmp != null)
            {
                List<object[]> list = new List<object[]>();
                tableWord = new tableListWord(tableTmp);
                for (int k = 0; k < tableWord.getRowNumber(); k++)
                {
                    list.Add(new object[] { tableWord.getRow(k)[0], tableWord.getRow(k)[1], tableWord.getRow(k)[2], tableWord.getRow(k)[3] });
                }
                dbHelper.InsertDatabaseRegistry(projectCode, quarter, list);
            }

            // Growth Rate Insert.
            string currentAllocate, currentUsed, allocateGrowth, useGrowth;
            currentAllocate = currAlloc.Text;
            currentUsed = usedAlloc.Text;
            allocateGrowth = allocGrowth.Text;
            useGrowth = usedGrowth.Text;

            object[] growthRateList = new object[] { currentAllocate, currentUsed, allocateGrowth, useGrowth };
            dbHelper.InsertDatabaseGrowthRate(projectCode, quarter, growthRateList);



            //Delete Folder temp.
            Directory.Delete(tempPath,true);
        }
예제 #4
0
        public object readFormat(string f, SetOfTableList t) //java ver return string
        {
            ArrayList tmps = new ArrayList();

            //String [] strtmps;
            char[] chs  = new char[1024];
            int    pos  = 0;
            int    i    = 0;
            bool   flag = true;

            if (f.Length < 2 || f[0] != '\"')
            {
                return(null);
            }
            // read formated text in double quote
            for (i = 1; i < f.Length && flag; i++)
            {
                if (f[i] == '\"')
                {
                    chs[pos] = '\0';
                    flag     = false;
                }
                else if (f[i] == '\\')
                {
                    if (i + 1 >= f.Length)
                    {
                        return(null);
                    }
                    else if (f[i + 1] == '\\')
                    {
                        chs[pos] = '\\';
                        pos++;
                        i++;
                    }
                    else if (f[i + 1] == '\"')
                    {
                        chs[pos] = '\"';
                        pos++;
                        i++;
                    }
                    else if (f[i + 1] == 'n')
                    {
                        chs[pos] = '\n';
                        pos++;
                        i++;
                    }
                    else if (f[i + 1] == 't')
                    {
                        chs[pos] = '\t';
                        pos++;
                        i++;
                    }
                    else
                    {
                        return(null);
                    }
                }
                else
                {
                    chs[pos] = f[i];
                    pos++;
                }
                //System.out.println(chs);
            }
            if (i >= f.Length && flag)
            { /* end with non '\"' */
                return(null);
            }

            string ans = new string(chs, 0, pos);

            //System.out.println(">>>" + ans);
            tmps.Add(ans);

            // read formated variables behind double quote
            pos = 0;
            while (i < f.Length)
            {
                if (f[i] == ',')
                {
                    chs[pos] = '\0';
                    ans      = new string(chs, 0, pos);
                    //System.out.println(">>" + ans);
                    tmps.Add(ans);
                    pos = 0;
                }
                else if (f[i] == '\\')
                {
                    if (i + 1 >= f.Length)
                    {
                        return(null);
                    }
                    else if (f[i + 1] == '\\')
                    {
                        chs[pos] = '\\';
                        pos++;
                        i++;
                    }
                    else if (f[i + 1] == ',')
                    {
                        chs[pos] = ',';
                        pos++;
                        i++;
                    }
                    else
                    {
                        return(null);
                    }
                }
                else
                {
                    chs[pos] = f[i];
                    pos++;
                }
                //System.out.println(chs);
                i++;
            }
            chs[pos] = '\0';
            ans      = new string(chs, 0, pos);
            //System.out.println(">>" + ans);
            tmps.Add(ans);

            /* scan format */
            // This part need to be normalized
            string tmp = (string)tmps[0];

            ans = "";
            pos = 1;
            for (i = 0; i < tmp.Length; i++)
            {
                if (tmp[i] == '%')
                {
                    string s;
                    if (i + 1 >= tmp.Length)
                    {
                        return(null);
                    }
                    else if (tmp[i + 1] == '%')
                    {
                        ans += "%";
                        i++;
                    }
                    /// %s (search string) tableName@key@outputColumn
                    /// %c (search column) tableName@outputColumn
                    /// %C
                    /// %e (select enumerate) tableName@keyColumn@element@value
                    /// %E (select enumerate) tableName@keyIndex@key@outputColumn@element@value
                    /// %p (search by prefix) tableName@key@outputColumn
                    /// %x (check existent table) tableName@outputSequence
                    /// %X (check existent key in field) tableName@key@Column@outputSequence
                    else if (tmp[i + 1] == 's' || tmp[i + 1] == 'c' || tmp[i + 1] == 'C' || tmp[i + 1] == 'e' || tmp[i + 1] == 'E' ||
                             tmp[i + 1] == 'p' || tmp[i + 1] == 'x' || tmp[i + 1] == 'X')
                    {
                        if ((s = (string)translate((string)tmps[pos], tmp[i + 1].ToString(), t)) == null)
                        {
                            s = "";
                        }
                        ans += s;
                        pos++;
                        i++;
                    }
                    /// %T (show table) tableName@columnSequence@headerSequence <<<<< if option is 'T', it'll immediately return tableListWord
                    else if (tmp[i + 1] == 'T')
                    {
                        tableListWord tlw;
                        if ((tlw = (tableListWord)translate((string)tmps[pos], "T", t)) != null)
                        {
                            return(tlw);
                        }
                        pos++;
                        i++;
                    }
                    else
                    {
                        return(null);
                    }
                }
                else
                {
                    ans += tmp[i];
                }
            }

            return(ans);
        }
예제 #5
0
        public SetOfTableList readInputLog(TextReader reader)
        {
            SetOfTableList tables = new SetOfTableList();
            string         line = null;
            string         topic = null, tableName = null, strtmp = null;

            string[]  strtmps   = null, fields;
            int[]     charInCol = null;
            int       state     = 0;
            int       tableNum  = 0;
            tableList tableTmp  = null;

            /*
             *      reading state
             *	0 = initial
             *  1 = already collect a table name / ready to get header of fields
             *  2 = may be collect header of fields (tmp) / ready to get number of character of fields
             *  3 = already collect charInCol / create a tableList / ready to get rows
             */

            while ((line = reader.ReadLine()) != null)
            {
                int c = checkCase(line);
                if (c == 1)
                {
                    topic = getCenter(line, 3, '#');
                    //System.out.println("case:1(" + topic + ")");
                    state = 0;
                }
                else if (c == 2)
                {
                    tableName = getCenter(line, 3, '-');
                    //System.out.println("case:2(" + tableName + ")");
                    tableNum = 1;
                    state    = 1;
                }
                else if (c == 3)
                {
                    if (state == 3)
                    {
                        //tableTmp.printTable(); // this for check table
                        if (tableTmp != null)
                        {
                            //System.out.println(" %%%%%% tables == null %%%%%");
                            tables.addTableList(tableTmp);
                        }
                    }
                    //System.out.println("case:3");
                    state = 0;
                }
                else
                {
                    //System.out.println(line.trim());
                    if (state == 1)
                    {
                        if (line.Length > 0)
                        {
                            strtmp = line;
                            state  = 2;
                        }
                    }
                    else if (state == 2)
                    {
                        // First, check delimiter between header and rows
                        string s    = line.Trim();
                        bool   deli = true;
                        if (s.Length == 0)
                        {
                            deli = false;
                        }
                        for (int i = 0; i < s.Length && deli; i++)
                        {
                            if (!(s[i] == '-' || s[i] == ' ') || (s[i] == ' ' && s[i - 1] != '-'))
                            {
                                deli = false;
                                //System.out.println ("It's not deli");
                            }
                        }
                        // Then create a header
                        if (deli)
                        {
                            strtmps   = line.Trim().Split(new char[] { ' ' });
                            charInCol = new int[strtmps.Length];
                            fields    = new string[strtmps.Length];
                            int pos = 0;
                            for (int i = 0; i < charInCol.Length; i++)
                            {
                                charInCol[i] = strtmps[i].Length;
                                Debug.WriteLine("Position = " + pos + ", i = " + i + ", Strtmp = " + strtmp);
                                fields[i] = strtmp.Substring(pos, charInCol[i]).Trim(); //fixed
                                pos      += charInCol[i] + 1;
                            }
                            //for (int i = 0; i < charInCol.length; i++) {
                            //	System.out.println(fields[i]);
                            //}
                            //System.out.println(header + "@" + tableName + "@" + tableNum);

                            tableTmp = new tableList(topic + "@" + tableName + "@" + tableNum);
                            tableTmp.addHeader(fields);
                            //tableTmp.printTable();
                            tableNum++;

                            state = 3;
                        }
                        else
                        {
                            if (line.Length > 0)
                            {
                                strtmp = line;
                            }
                            else
                            {
                                state = 1;
                            }
                        }
                    }
                    else if (state == 3)
                    {
                        if (line.Length > 0)
                        {
                            //strtmps = line.trim().split(" ");
                            fields = new string[charInCol.Length];
                            int pos = 0;
                            for (int i = 0; i < charInCol.Length; i++)
                            {
                                fields[i] = rearrangeNumber(line.Substring(pos, charInCol[i]).Trim()); //fixed
                                pos      += charInCol[i] + 1;
                            }
                            // consider to concat with previous?
                            if (fields[0].Equals(""))
                            {
                                for (int i = 1; i < charInCol.Length; i++)
                                {
                                    if (!fields[i].Equals(""))
                                    {
                                        strtmps[i] += (fields[i].Trim());
                                        pos        += charInCol[i] + 1;
                                    }
                                }
                            }
                            else
                            {
                                strtmps = fields;
                                tableTmp.addRow(fields); ////////////////////////////////////////////////////////////////////////////////////////////////////////
                            }
                        }
                        else
                        {
                            //tableTmp.printTable(); // this for check table
                            if (tableTmp != null)
                            {
                                //System.out.println(" %%%%%% tables == null %%%%%");
                                tables.addTableList(tableTmp);
                            }
                            state = 1;
                        }
                    }
                }
            }
            return(tables);
        }