/// <summary> /// Returns a file path/name for a run result file. Will create the /// job run directory if it does not exist. /// </summary> /// <param name="definitionName">Definition name</param> /// <param name="runItem">Result type</param> /// <param name="runStart">Run date</param> /// <returns>File path/name</returns> private static string GetRunFilePathName( string definitionName, JobRunItem runItem, DateTime runStart) { string directoryPath = GetJobRunOutputDirectory(definitionName); string jobRunPath = string.Format(CultureInfo.InvariantCulture, @"{0}\{1}", directoryPath, ConvertDateTimeToJobRunName(runStart)); return string.Format(CultureInfo.InvariantCulture, @"{0}\{1}.xml", jobRunPath, runItem.ToString()); }
/// <summary> /// Returns a FileStream object for a new scheduled job definition run. /// </summary> /// <param name="definitionOutputPath">Scheduled job definition path.</param> /// <param name="runStart">DateTime of job run start time.</param> /// <param name="runItem">Job run item.</param> /// <returns>FileStream object.</returns> public static FileStream CreateFileForJobRunItem( string definitionOutputPath, DateTime runStart, JobRunItem runItem) { if (string.IsNullOrEmpty(definitionOutputPath)) { throw new PSArgumentException("definitionOutputPath"); } string filePathName = GetRunFilePathNameFromPath(definitionOutputPath, runItem, runStart); // If the file already exists, we overwrite it because the job run // can be updated multiple times while the job is running. return File.Create(filePathName); }
/// <summary> /// Returns a FileStream object for an existing scheduled job definition /// run. /// </summary> /// <param name="definitionName">Scheduled job definition name.</param> /// <param name="runStart">DateTime of job run start time.</param> /// <param name="runItem">Job run item.</param> /// <param name="fileAccess">File access</param> /// <param name="fileMode">File mode</param> /// <param name="fileShare">File share</param> /// <returns>FileStream object.</returns> public static FileStream GetFileForJobRunItem( string definitionName, DateTime runStart, JobRunItem runItem, FileMode fileMode, FileAccess fileAccess, FileShare fileShare) { if (string.IsNullOrEmpty(definitionName)) { throw new PSArgumentException("definitionName"); } string filePathName = GetRunFilePathName(definitionName, runItem, runStart); return File.Open(filePathName, fileMode, fileAccess, fileShare); }
/// <summary> /// Returns a file path/name for a job run result, based on the passed in /// job run output path. Will create the job run directory if it does not /// exist. /// </summary> /// <param name="outputPath">Definition job run output path</param> /// <param name="runItem">Result type</param> /// <param name="runStart">Run date</param> /// <returns></returns> private static string GetRunFilePathNameFromPath( string outputPath, JobRunItem runItem, DateTime runStart) { string jobRunPath = string.Format(CultureInfo.InvariantCulture, @"{0}\{1}", outputPath, ConvertDateTimeToJobRunName(runStart)); if (!Directory.Exists(jobRunPath)) { // Create directory for this job run date. Directory.CreateDirectory(jobRunPath); } return string.Format(CultureInfo.InvariantCulture, @"{0}\{1}.xml", jobRunPath, runItem.ToString()); }