Example #1
0
        static async Task Main()
        {
            Console.WriteLine(fluent.App.BuildTimeStampUtc.ToLocalTime());
            Console.WriteLine(fluent.App.BuildMachineName);
            Console.WriteLine(fluent.App.BuildReleaseName);

            {
                var(Ok, Value) = await dotnet.Shell.VersionAsync();

                if (Ok)
                {
                    Console.WriteLine($"version {Value}");
                }
                Console.ReadLine();
            }
            {
                if (await dotnet.Shell.SdksAsync() is var result && result.Ok)
                {
                    foreach (var item in result.Value)
                    {
                        Console.WriteLine($"{item.IsBeta} {item.Version} [{item.Directroy}]");
                    }
                }
                Console.ReadLine();
            }
            {
                if (await dotnet.Shell.RuntimesAsync() is var result && result.Ok)
                {
                    foreach (var item in result.Value)
                    {
                        Console.WriteLine($"{item.IsBeta} {item.Version} [{item.Directroy}]");
                    }
                }
                Console.ReadLine();
            }

            var v = await nuget.org.GetLastPackageVersionAsync("dotnet-serve");

            if (v.Ok)
            {
                Console.WriteLine($"Last={v.Value}");
            }
            var l = await nuget.org.GetPackageVersionsAsync("dotnet-serve");

            if (l.Ok)
            {
                Console.WriteLine(string.Join("\r\n", l.Value));
            }
            Console.ReadLine();

            Console.ForegroundColor = ConsoleColor.Yellow;
            Console.WriteLine($"EifelMono.Fluent FilePath, DirectoryPath, ....");
            Console.ForegroundColor = ConsoleColor.White;
            // var testFile = new FilePath(@"C:\temp\src", "test.txt")
            var testFile = new FilePath(@"C:\temp\src\test.txt")
                           .EnsureDirectoryExist()
                           .IfExists.Delete(); // if file exist

            testFile.WriteLine("Line 1");
            testFile.WriteLine("Line 2");

            Console.WriteLine(testFile.FullPath);
            Console.WriteLine(testFile.FileName);
            Console.WriteLine(testFile.FileNameWithoutExtension);
            Console.WriteLine(testFile.Extension);
            Console.WriteLine(testFile.DirectoryName);
            Console.WriteLine(testFile.CreationTime);
            Console.WriteLine(testFile.CreationTimeUtc);
            Console.WriteLine(testFile.LastAccessTime);
            Console.WriteLine(testFile.LastWriteTime);

            testFile.Copy("test.bak");

            Console.WriteLine(@"**\*.txt,*.bak");
            foreach (var file in testFile.Directory.GetFiles(@"**\*.txt,*.bak"))
            {
                Console.WriteLine(file);
            }

            var newDir = testFile.Directory.Clone("Hello", "World").EnsureExist();

            Console.WriteLine("**");
            foreach (var directory in testFile.Directory.GetDirectories("**"))
            {
                Console.WriteLine(directory);
            }

            Console.WriteLine(@"**\Hello\**");
            foreach (var directory in testFile.Directory.GetDirectories(@"**\Hello\**"))
            {
                Console.WriteLine(directory);
            }
            Console.WriteLine(@"**\Hello\*");
            foreach (var directory in testFile.Directory.GetDirectories(@"**\Hello\*"))
            {
                Console.WriteLine(directory);
            }

            testFile.Copy(newDir);
            Console.WriteLine(@"**\*.txt,*.bak");
            foreach (var file in testFile.Directory.GetFiles(@"**\*.txt,*.bak"))
            {
                Console.WriteLine(file);
            }

            Console.WriteLine(@"**\Hello\**\*.txt,*.bak");
            foreach (var file in testFile.Directory.GetFiles(@"**\Hello\**\*.txt,*.bak"))
            {
                Console.WriteLine(file);
            }

            var jsonFile = new FilePath(testFile.Directory, "test.json")
                           .IfExists.Delete();

            var spezialFolders = fluent.Enum.Values <Environment.SpecialFolder>()
                                 .Select(f => DirectoryPath.OS.SpecialFolderPath(f)).ToList();

            jsonFile.WriteAllText(spezialFolders.ToJson());
            var spezialFoldersFromFile = jsonFile.ReadAllText().FromJson <List <FilePath> >();

            Console.WriteLine("Waiting for key return");
            Console.ReadLine();

            Console.ForegroundColor = ConsoleColor.Yellow;
            Console.WriteLine($"About App, Lib, OS");
            Console.ForegroundColor = ConsoleColor.White;

            Console.WriteLine(fluent.OSInfo.ToJson());
            Console.WriteLine(fluent.FluentLib.ToJson());
            Console.WriteLine(fluent.FluentLib.CustomAttributesAsJson());

            Console.ForegroundColor = ConsoleColor.Yellow;
            Console.WriteLine($"fluent.App info about this app");
            Console.ForegroundColor = ConsoleColor.White;
            Console.WriteLine(fluent.App.ToJson());
            Console.WriteLine(fluent.App.BuildTimeStampUtc.ToLocalTime());
            Console.WriteLine(fluent.App.BuildMachineName);
            Console.WriteLine(fluent.App.BuildReleaseName);

            Console.WriteLine("Waiting for key return");
            Console.ReadLine();
        }