示例#1
0
        /// <summary>
        /// Updates the DisplayScriptResult from a StackHashScriptResultFile
        /// </summary>
        /// <param name="stackHashScriptResultFile">StackHashScriptResultFile</param>
        public void UpdateScriptResult(StackHashScriptResultFile stackHashScriptResultFile)
        {
            if (stackHashScriptResultFile == null)
            {
                throw new ArgumentNullException("stackHashScriptResultFile");
            }
            if (stackHashScriptResultFile.ScriptName != _stackHashScriptResultFile.ScriptName)
            {
                throw new InvalidOperationException("Cannot update from a script result with a different script name");
            }

            // save the old result
            StackHashScriptResultFile oldResult = _stackHashScriptResultFile;

            _stackHashScriptResultFile = stackHashScriptResultFile;

            // check for updates
            if (oldResult.UserName != _stackHashScriptResultFile.UserName)
            {
                RaisePropertyChanged("UserName");
            }
            if (oldResult.RunDate != _stackHashScriptResultFile.RunDate)
            {
                RaisePropertyChanged("RunDate");
            }
        }
示例#2
0
        /// <summary>
        /// StackHashScriptResultFile wrapper class
        /// </summary>
        /// <param name="stackHashScriptResultFile">StackHashScriptResultFile</param>
        public DisplayScriptResult(StackHashScriptResultFile stackHashScriptResultFile)
        {
            if (stackHashScriptResultFile == null)
            {
                throw new ArgumentNullException("stackHashScriptResultFile");
            }

            _stackHashScriptResultFile = stackHashScriptResultFile;
        }
示例#3
0
        /// <summary>
        /// Gets the results files for the specified cab.
        /// </summary>
        /// <param name="product">Product to which the cab belongs</param>
        /// <param name="file">File to which the cab belongs</param>
        /// <param name="theEvent">Event to which the cab belongs</param>
        /// <param name="cab">Cab to get results for.</param>
        /// <returns>All script results for specified cab.</returns>
        public StackHashScriptResultFiles GetResultFiles(StackHashProduct product,
                                                         StackHashFile file, StackHashEvent theEvent, StackHashCab cab)
        {
            // Unwrap the cab if necessary.
            String cabFileFolder = m_ErrorIndex.GetCabFolder(product, file, theEvent, cab);

            cabFileFolder += "\\Analysis";

            // Get a list of the results log files.
            String[] files;
            if (Directory.Exists(cabFileFolder))
            {
                files = Directory.GetFiles(cabFileFolder, "*.log");
            }
            else
            {
                files = new String[0];
            }

            StackHashScriptResultFiles resultFiles = new StackHashScriptResultFiles();

            foreach (String fileName in files)
            {
                // Need to get whether it is an auto or user script.
                String fileNameNoExtension             = Path.GetFileNameWithoutExtension(fileName);
                StackHashScriptSettings scriptSettings = m_ScriptManager.LoadScript(fileNameNoExtension, true);

                StackHashScriptResultFile resultFile = new StackHashScriptResultFile();
                resultFile.RunDate    = File.GetLastWriteTimeUtc(fileName);
                resultFile.ScriptName = Path.GetFileNameWithoutExtension(fileName);

                if ((scriptSettings == null) || (scriptSettings.Owner == StackHashScriptOwner.System))
                {
                    resultFile.UserName = "******";
                }
                else
                {
                    resultFile.UserName = "******";
                }

                resultFiles.Add(resultFile);
            }

            return(resultFiles);
        }