private static string CreateUniqueFileName()

in src/TestFramework/Core/Logging/LogProfileParser.cs [65:126]


        private static string CreateUniqueFileName(FileLogSinkConfig fileSink, string testAssemblyName)
        {
            string timeStampFormat = "{0:D4}-{1:D2}-{2:D2} {3:D2}_{4:D2}_{5:D2}_{6:D3}";

            if (testAssemblyName == null)
            {
                throw new ArgumentNullException("Test Assembly Name");
            }

            string uniqueName = string.Empty;
            string extension = string.Empty;
            if (0 == string.Compare("text", fileSink.Format, StringComparison.CurrentCultureIgnoreCase))
            {
                extension = ".txt";
            }
            else if (0 == string.Compare("xml", fileSink.Format, StringComparison.CurrentCultureIgnoreCase))
            {
                extension = ".xml";
            }
            else
            {
                throw new InvalidOperationException(
                    string.Format("Unexpected file format for file sink {0}, the format for file sink can only be 'text' or 'xml'.", fileSink.Name));
            }

            //use the time stamp to make the file name unique.
            DateTime timeStamp = DateTime.Now;
            string timeStampInfo = string.Format(timeStampFormat,
                                                timeStamp.Year,
                                                timeStamp.Month,
                                                timeStamp.Day,
                                                timeStamp.Hour,
                                                timeStamp.Minute,
                                                timeStamp.Second,
                                                timeStamp.Millisecond);

            if (string.IsNullOrEmpty(fileSink.File))
            {
                uniqueName = "[" + testAssemblyName + "_" + fileSink.Name + "]" + timeStampInfo + extension;
                if (File.Exists(Path.Combine(fileSink.Directory, uniqueName)))
                {
                    throw new InvalidOperationException(
                        "File already exist: " + uniqueName);
                }
            }
            else
            {
                uniqueName = fileSink.File;
                if(File.Exists(Path.Combine(fileSink.Directory, uniqueName)))
                {
                    uniqueName = "[" + testAssemblyName + "_" + fileSink.Name + "]" + timeStampInfo + " " + fileSink.File;

                    if (File.Exists(Path.Combine(fileSink.Directory, uniqueName)))
                    {
                        throw new InvalidOperationException(
                            "File already exist: " + uniqueName);
                    }
                }
            }

            return uniqueName;
        }