示例#1
0
 public DiskProfileBase(IEventAggregator events, params IConverterProfile[] converters)
     : base(events, converters)
 {
     MetadataProvider = new MetadataProviderBase(new BasicMetadataProvider(), new FileBasedMetadataProvider());
     CommandProviders.Add(new FileBasedCommandProvider());                                                                                                                            //Open, Cut, Copy, Paste etc
     DeleteCommand =
         ScriptCommands.AssignProperty("{DeleteEntries}", "Length", "{DeleteEntries-Length}",                                                                                         //Assign DeleteEntries Length
                                       ScriptCommands.IfValue <int>(ComparsionOperator.GreaterThanOrEqual, "{DeleteEntries.Length}", 1,                                               //If DeleteEntries Length >= 1
                                                                    UIScriptCommands.MessageBoxYesNo("FileExplorer", "Delete {DeleteEntries[0]} and {DeleteEntries-Length} Item(s)?", //IfTrue
                                                                                                     CoreScriptCommands.DiskDeleteMultiple("{DeleteEntries}", true))));
     CreateFolderCommand =
         CoreScriptCommands.DiskCreateFolder("{BaseFolder.Profile}", "{BaseFolder.FullPath}\\{FolderName}",
                                             "{CreatedFolder}", NameGenerationMode.Rename);
 }
示例#2
0
        public AppViewModel()
        {
            LogManagerFactory.DefaultConfiguration.AddTarget(LogLevel.Info, LogLevel.Fatal, new ConsoleTarget());
            LogManagerFactory.DefaultConfiguration.IsEnabled = true;

            LogManagerFactory.DefaultLogManager.GetLogger <AppViewModel>().Log(LogLevel.Debug, "Test");
            //AsyncUtils.RunSync(() => ScriptCommandTests.Test_DownloadFile());


            //        IScriptCommand diskTransferCommand =
            //ScriptCommands.ParsePath("{SourceFile}", "{Source}",
            //ScriptCommands.DiskParseOrCreateFolder("{DestinationDirectory}", "{Destination}",
            //IOScriptCommands.DiskTransfer("{Source}", "{Destination}", false, false)));

            //await ScriptRunner.RunScriptAsync(new ParameterDic() {
            //                { "Profile", FileSystemInfoExProfile.CreateNew() },
            //                { "SourceFile", srcFile },
            //                { "DestinationFile", destFile }
            //            }, copyCommand);


            //string tempDirectory = "C:\\Temp";
            //string destDirectory = "C:\\Temp\\Destination1";
            //string srcFile = System.IO.Path.Combine(tempDirectory, "file1.txt");
            //string destFile = System.IO.Path.Combine(destDirectory, "file2.txt");

            //AsyncUtils.RunSync(() => ScriptRunner.RunScriptAsync(new ParameterDic() {
            //    { "Profile", FileExplorer.Models.FileSystemInfoExProfile.CreateNew() },
            //    { "SourceFile", srcFile },
            //    { "DestinationDirectory", destDirectory }
            //}, diskTransferCommand));

            string tempDirectory = "C:\\Temp";
            string destDirectory = "C:\\Temp\\Debug2";
            string srcDirectory  = "C:\\Temp\\aaaaabc";


            IScriptCommand diskTransferCommand =
                CoreScriptCommands.ParsePath("{Profile}", srcDirectory, "{Source}",
                                             CoreScriptCommands.DiskParseOrCreateFolder("{Profile}", destDirectory, "{Destination}",
                                                                                        IOScriptCommands.DiskTransfer("{Source}", "{Destination}", null, false, false)));

            AsyncUtils.RunSync(() => ScriptRunner.RunScriptAsync(new ParameterDic()
            {
                { "Profile", FileSystemInfoExProfile.CreateNew() }
            }, diskTransferCommand));
        }
        public static async Task Test_CopyFile()
        {
            string tempDirectory = "C:\\Temp";
            string srcFile       = System.IO.Path.Combine(tempDirectory, "File1.txt");
            string destFile      = System.IO.Path.Combine(tempDirectory, "File2.txt");
            string signature     = "Created by testCopyFile at " + DateTime.Now.ToString();

            Directory.CreateDirectory(tempDirectory);
            using (var sw = File.CreateText(srcFile))
                sw.WriteLine(signature);
            //File.Delete(destFile);

            IProfile fsiProfile = new FileSystemInfoExProfile(null, null);


            IScriptCommand copyCommand =
                CoreScriptCommands.ParsePath("{Profile}", "{SourceFile}", "{Source}",
                                             CoreScriptCommands.DiskParseOrCreateFile("{Profile}", "{DestinationFile}", "{Destination}",
                                                                                      CoreScriptCommands.DiskOpenStream("{Source}", "{SourceStream}", FileExplorer.Defines.FileAccess.Read,
                                                                                                                        CoreScriptCommands.DiskOpenStream("{Destination}", "{DestinationStream}", FileExplorer.Defines.FileAccess.Write,
                                                                                                                                                          CoreScriptCommands.CopyStream("{SourceStream}", "{DestinationStream}"))))
                                             , ResultCommand.Error(new FileNotFoundException(srcFile))
                                             );

            //copyCommand = ScriptCommands.CopyFile("SourceFile", "DestinationFile");
            copyCommand = serializeAndDeserializeCommand(copyCommand);
            await ScriptRunner.RunScriptAsync(new ParameterDic()
            {
                { "Profile", fsiProfile },
                { "SourceFile", srcFile },
                { "DestinationFile", destFile }
            }, copyCommand);


            string actual = null;

            using (var sr = File.OpenText(destFile))
            {
                actual = sr.ReadLine();
            }

            Assert.AreEqual(signature, actual);
        }
        public static async Task Test_DownloadFile()
        {
            string downloadUrl   = "http://www.quickzip.org/logo2.png";
            string tempDirectory = "C:\\Temp";
            string destFile      = System.IO.Path.Combine(tempDirectory, "output.png");

            IScriptCommand downloadCommand =
                CoreScriptCommands.Download("Url", "Stream",
                                            CoreScriptCommands.DiskParseOrCreateFile("{Profile}", "{DestinationFile}", "{Destination}",
                                                                                     CoreScriptCommands.DiskOpenStream("{Destination}", "{DestinationStream}", FileExplorer.Defines.FileAccess.Write,
                                                                                                                       CoreScriptCommands.CopyStream("{Stream}", "{DestinationStream}"))));

            //downloadCommand = ScriptCommands.DownloadFile("Url", "DestinationFile");

            downloadCommand = serializeAndDeserializeCommand(downloadCommand);
            await ScriptRunner.RunScriptAsync(new ParameterDic()
            {
                { "Profile", new FileSystemInfoExProfile(null, null) },
                { "Url", downloadUrl },
                { "DestinationFile", destFile },
            }, downloadCommand);
        }