예제 #1
0
        private static string CreateFileExtension(IOutputableOption options)
        {
            string fileExtension = Path.HasExtension(options.OutputFilePath)
                ? $".{Path.GetExtension(options.OutputFilePath)}"
                : string.Empty;

            return(fileExtension);
        }
예제 #2
0
        private static void GenerateOutputFileNameIfNotSet(IOutputableOption options)
        {
            if (string.IsNullOrWhiteSpace(options.OutputFilePath))
            {
                string fileExtension  = CreateFileExtension(options);
                string filePrefixName = CreateFilePrefixName(options, ref fileExtension);

                DateTime now = DateTime.Now;
                options.OutputFilePath =
                    $"{filePrefixName}_" +
                    $"{now.Year}-{now.Month}-{now.Day}_" +
                    $"{now.Hour}{now.Minute}{now.Second}{now.Millisecond}" +
                    $"{fileExtension}";
            }
        }
예제 #3
0
        private static string CreateFilePrefixName(IOutputableOption options, ref string fileExtension)
        {
            string filePrefixName;

            switch (options)
            {
            case EncryptVerbOptions opts:
                filePrefixName = "EncryptedData";
                break;

            case DecryptVerbOptions opts:
                filePrefixName = "DecryptedData";
                break;

            case GenerateStrongKeyVerbOptions opts:
                filePrefixName = "SK";
                fileExtension  = ".key";
                break;

            default:
                throw new ArgumentOutOfRangeException(nameof(options));
            }
            return(filePrefixName);
        }