예제 #1
0
        public void doService()
        {
            //the ODM crash files will move to ODM dir from LUT
            moveODMFiles(configData.LUTPath, configData.ODM_PATH);

            configData.currentDate = FileOperator.geStringtDate();
            FileOperator.createDateFolder(configData.currentDate);
            clearContains();

            //get all crash report files
            getCrashFiles(ref crashFileList);

            Trace.WriteLine("********* The Total number of Crash Reports is : " + crashFileList.Count + " *********");
            //from the name of crash file, get the delivry time and imei
            foreach (CrashFileTypeInfo fileTypeInfo in crashFileList)
            {
                CrashFileNameInfo nameInfo = logFactory.buildFileNameInfo(fileTypeInfo);
                fileNameInfoList.Add(nameInfo);
            }

            Trace.WriteLine("********* The valid Crash Reports is : " + fileNameInfoList.Count + " *********");
            //do mathing with delivery time and imei
            processManager.matchCrashFile(fileNameInfoList, ref logInfoList);

            Trace.WriteLine("********* After do matching, there have " + logInfoList.Count + " crash reports *********");
            //move crash reports to result directory and record the match result into DB.
            resultManager.handleMatchResults(logInfoList);
        }
예제 #2
0
        public CrashFileNameInfo buildFileNameInfo(CrashFileTypeInfo fileTypeInfo)
        {
            //check the file name's validity
            string fileName = fileTypeInfo.FileName;

            if (!fileTypeInfo.IsLut)
            {
                if (fileName.StartsWith("Crash-YMD-HMS"))
                {
                    if (FileOperator.validateFileName(mCrashYMDPhaser, fileName))
                    {
                        return(mCrashYMDPhaser.doPharse(fileTypeInfo));
                    }
                }

                if (fileName.StartsWith("Crash-SSR-YMD-HMS"))
                {
                    if (FileOperator.validateFileName(mCrashSSRPhaser, fileName))
                    {
                        return(mCrashSSRPhaser.doPharse(fileTypeInfo));
                    }
                }

                if (fileName.StartsWith("BugReport"))
                {
                    if (FileOperator.validateFileName(mBugReportpPhaser, fileName))
                    {
                        return(mBugReportpPhaser.doPharse(fileTypeInfo));
                    }
                }

                if (fileName.StartsWith("CoreDump"))
                {
                    if (FileOperator.validateFileName(mCoreDumpPhaser, fileName))
                    {
                        return(mCoreDumpPhaser.doPharse(fileTypeInfo));
                    }
                }
            }
            CrashFileNameInfo fileNameInfo = new CrashFileNameInfo();

            fileNameInfo.DeliveryTime = null;
            fileNameInfo.FileName     = fileName;
            fileNameInfo.FullName     = fileTypeInfo.FullName;
            fileNameInfo.IsFile       = fileTypeInfo.IsFile;
            fileNameInfo.Imei         = null;
            fileNameInfo.IsValid      = false;
            fileNameInfo.IsLut        = fileTypeInfo.IsLut;
            fileNameInfo.IsOlder      = fileTypeInfo.IsOlder;
            fileNameInfo.From         = fileTypeInfo.From;

            return(fileNameInfo);
        }
예제 #3
0
        private CrashLogsInfo getCrashLogInfo(SqlConnection conn, string sql, CrashFileNameInfo nameInfo, string imei)
        {
            CrashLogsInfo logInfo = null;

            SqlCommand cmd = new SqlCommand(sql, conn);

            cmd.Parameters.Clear();
            cmd.Parameters.Add("@pInDeliverTime", SqlDbType.DateTime).Value = nameInfo.DeliveryTime;
            cmd.Parameters.Add("@pIn_IMEI", SqlDbType.VarChar).Value        = imei;

            SqlDataAdapter adapter = new SqlDataAdapter(cmd);
            DataSet        ds      = new DataSet();

            adapter.Fill(ds);

            if (ds.Tables[0].Rows.Count > 0)
            {
                logInfo = new CrashLogsInfo();
                logInfo.PhoneTransId = Convert.ToInt64(ds.Tables[0].Rows[0]["PhoneTrans_id"]);
                logInfo.LogName      = Convert.ToString(ds.Tables[0].Rows[0]["LogName"]);
                logInfo.PhoneModelId = Convert.ToInt64(ds.Tables[0].Rows[0]["PhoneModel_id"]);
                logInfo.DeliveryTime = Convert.ToDateTime(ds.Tables[0].Rows[0]["DeliverTime"]);
                logInfo.WorkingName  = Convert.ToString(ds.Tables[0].Rows[0]["Workingname"]);
                logInfo.Sw1Revision  = Convert.ToString(ds.Tables[0].Rows[0]["Sw1Revision"]);
                logInfo.IsLut        = nameInfo.IsLut;
                logInfo.IsFile       = nameInfo.IsFile;
                logInfo.FullName     = nameInfo.FullName;
                logInfo.FileName     = nameInfo.FileName;
                logInfo.IsSuccess    = true;
                logInfo.CrashType    = FileOperator.getCrashType(nameInfo.FileName);
                logInfo.From         = nameInfo.From;
            }
            else if (nameInfo.IsOlder)
            {
                logInfo = new CrashLogsInfo();
                logInfo.PhoneTransId = 0;
                logInfo.LogName      = null;
                logInfo.PhoneModelId = getPhoneModelId(conn, nameInfo.FileName);
                logInfo.DeliveryTime = getDeliverTime(nameInfo.DeliveryTime);
                logInfo.WorkingName  = null;
                logInfo.Sw1Revision  = null;
                logInfo.IsLut        = nameInfo.IsLut;
                logInfo.IsFile       = nameInfo.IsFile;
                logInfo.FullName     = nameInfo.FullName;
                logInfo.FileName     = nameInfo.FileName;
                logInfo.IsSuccess    = false;
                logInfo.CrashType    = FileOperator.getCrashType(nameInfo.FileName);
                logInfo.From         = nameInfo.From;
            }


            return(logInfo);
        }
예제 #4
0
        public CrashFileNameInfo doPharse(CrashFileTypeInfo fileInfo)
        {
            CrashFileNameInfo fileNameInfo = new CrashFileNameInfo();

            string fileName = fileInfo.FileName;

            fileNameInfo.IsValid      = true;
            fileNameInfo.IsLut        = fileInfo.IsLut;
            fileNameInfo.DeliveryTime = getDeliveryTime(fileName);
            fileNameInfo.Imei         = getImeiNumber(fileName);
            fileNameInfo.FileName     = fileName;
            fileNameInfo.FullName     = fileInfo.FullName;
            fileNameInfo.IsFile       = fileInfo.IsFile;
            fileNameInfo.IsOlder      = fileInfo.IsOlder;
            fileNameInfo.From         = fileInfo.From;

            return(fileNameInfo);
        }