Example #1
0
        public void IncludeFolder()
        {
            var path = GetFullPath(GetCurrentPath());

            if (!View.ChooseContentFolder(path, out string folder))
            {
                return;
            }

            var items  = new List <IncludeItem>();
            var repeat = false;
            var action = IncludeType.Copy;

            if (!IncludeDirectory(items, path, folder, ref repeat, ref action))
            {
                return;
            }

            if (items.Count == 0)
            {
                return;
            }

            var includeaction = new IncludeAction(items);

            if (includeaction.Do())
            {
                _actionStack.Add(includeaction);
            }
        }
        public void NewItem()
        {
            string name;
            ContentItemTemplate template;

            if (!View.ChooseItemTemplate(GetFullPath(GetCurrentPath()), out template, out name))
            {
                return;
            }

            var destpath = Path.Combine(GetCurrentPath(), name);

            var action = new IncludeAction(
                new IncludeItem {
                SourcePath       = GetFullPath(destpath),
                RelativeDestPath = destpath,
                IncludeType      = IncludeType.Create,
                ItemTemplate     = template
            }
                );

            if (action.Do())
            {
                _actionStack.Add(action);
            }
        }
Example #3
0
        public void Include()
        {
            var path = GetFullPath(GetCurrentPath());

            if (View.ChooseContentFile(path, out List <string> files))
            {
                var items  = new List <IncludeItem>();
                var repeat = false;
                var action = IncludeType.Copy;

                if (!IncludeFiles(items, path, files.ToArray(), ref repeat, ref action))
                {
                    return;
                }

                if (items.Count == 0)
                {
                    return;
                }

                var includeaction = new IncludeAction(items);
                if (includeaction.Do())
                {
                    _actionStack.Add(includeaction);
                }
            }
        }
Example #4
0
        public void NewFolder(string name, string location)
        {
            string folder = Path.Combine(location, name);

            if (!Path.IsPathRooted(folder))
            {
                folder = _project.Location + Path.DirectorySeparatorChar + folder;
            }

            try
            {
                if (!Directory.Exists(folder))
                {
                    Directory.CreateDirectory(folder);
                }
            }
            catch {
                View.ShowError("Error While Creating a Directory", "An error has occured while the directory: \"" + folder + "\" was beeing created, aborting...");
                return;
            }

            var action = new IncludeAction(this, null, new List <string> {
                folder
            });

            if (action.Do())
            {
                _actionStack.Add(action);
            }
        }
        public void NewFolder()
        {
            string name;

            if (!View.ShowEditDialog("New Folder", "Folder Name:", "", true, out name))
            {
                return;
            }

            string folder = Path.Combine(GetFullPath(GetCurrentPath()), name);

            try
            {
                if (!Directory.Exists(folder))
                {
                    Directory.CreateDirectory(folder);
                }
            }
            catch
            {
                View.ShowError("Error While Creating a Directory", "An error has occured while the directory: \"" + folder + "\" was beeing created, aborting...");
                return;
            }

            var action = new IncludeAction(this, null, new List <string> {
                folder
            });

            if (action.Do())
            {
                _actionStack.Add(action);
            }
        }
Example #6
0
 public void Interpret(CellProcessor processor, Tree<Cell> table) {
     var action = new IncludeAction(processor);
     var currentRow = table.Branches[0].Skip(1);
     var selector = new SequenceRowSelector();
     processor.ExecuteWithThrow(action, selector.SelectMethodCells(currentRow),
                                                             selector.SelectParameterCells(currentRow),
                                                             currentRow.ValueAt(0));
     table.ValueAt(0, 0).SetAttribute(CellAttribute.Folded, action.Result);
 }
Example #7
0
        public void NewFolder()
        {
            if (!View.ShowEditDialog("New Folder", "Folder Name:", "", true, out string name))
            {
                return;
            }

            var action = new IncludeAction(new IncludeItem {
                SourcePath       = Path.Combine(GetFullPath(GetCurrentPath()), name),
                RelativeDestPath = Path.Combine(GetCurrentPath(), name),
                IncludeType      = IncludeType.Create,
                IsDirectory      = true
            });

            if (action.Do())
            {
                _actionStack.Add(action);
            }
        }
Example #8
0
        public void Include(string initialDirectory)
        {
            // Root the path to the project.
            if (!Path.IsPathRooted(initialDirectory))
            {
                initialDirectory = Path.Combine(_project.Location, initialDirectory);
            }

            List <string> files;

            if (!_view.ChooseContentFile(initialDirectory, out files))
            {
                return;
            }

            var action = new IncludeAction(this, files);

            action.Do();
            _actionStack.Add(action);
        }
        public void Include(string initialDirectory)
        {       
            // Root the path to the project.
            if (!Path.IsPathRooted(initialDirectory))
                initialDirectory = Path.Combine(_project.Location, initialDirectory);

            List<string> files;
            if (!_view.ChooseContentFile(initialDirectory, out files))
                return;

            var action = new IncludeAction(this, files);
            action.Do();
            _actionStack.Add(action);  
        }
Example #10
0
        public void Include(string initialDirectory)
        {
            // Root the path to the project.
            if (!Path.IsPathRooted(initialDirectory))
            {
                initialDirectory = Path.Combine(_project.Location, initialDirectory);
            }

            List <string> files;

            if (!View.ChooseContentFile(initialDirectory, out files))
            {
                return;
            }

            List <string> sc = new List <string>(), dc = new List <string>();
            int           def = 0;

            for (int i = 0; i < files.Count; i++)
            {
                if (!files[i].StartsWith(initialDirectory))
                {
                    string newfile = Path.Combine(initialDirectory, Path.GetFileName(files[i]));
                    int    daction = def;

                    if (daction == 1)
                    {
                        if (File.Exists(newfile))
                        {
                            daction = 2;
                        }
                    }

                    if (daction == 0)
                    {
                        bool       applyforall;
                        CopyAction act;

                        if (!View.CopyOrLink(files[i], File.Exists(newfile), out act, out applyforall))
                        {
                            return;
                        }

                        daction = (int)act + 1;
                        if (applyforall)
                        {
                            def = daction;
                        }
                    }

                    if (daction == 1)
                    {
                        sc.Add(files[i]);
                        dc.Add(newfile);
                        files[i] = newfile;
                    }
                    else if (daction == 3)
                    {
                        files.RemoveAt(i);
                        i--;
                    }
                }
            }

            if (files.Count == 0)
            {
                return;
            }

            try
            {
                for (int i = 0; i < sc.Count; i++)
                {
                    File.Copy(sc[i], dc[i]);
                }

                var action = new IncludeAction(this, files);
                action.Do();
                _actionStack.Add(action);
            }
            catch
            {
                View.ShowError("Error While Copying Files", "An error occurred while the files were being copied, aborting.");
            }
        }
        private void Include(string initialDirectory, string[] f)
        {
            List <string> files = new List <string>();

            files.AddRange(f);

            List <string> sc = new List <string>(), dc = new List <string>();
            int           def = 0;

            for (int i = 0; i < files.Count; i++)
            {
                if (!files[i].StartsWith(initialDirectory))
                {
                    string newfile = Path.Combine(initialDirectory, Path.GetFileName(files[i]));
                    int    daction = def;

                    if (daction == 1)
                    {
                        if (File.Exists(newfile))
                        {
                            daction = 2;
                        }
                    }

                    if (daction == 0)
                    {
                        bool       applyforall;
                        CopyAction act;

                        if (!View.CopyOrLinkFile(files[i], File.Exists(newfile), out act, out applyforall))
                        {
                            return;
                        }

                        daction = (int)act + 1;
                        if (applyforall)
                        {
                            def = daction;
                        }
                    }

                    if (daction == 1)
                    {
                        sc.Add(files[i]);
                        dc.Add(newfile);
                        files[i] = newfile;
                    }
                    else if (daction == 3)
                    {
                        files.RemoveAt(i);
                        i--;
                    }
                }
            }

            if (files.Count == 0)
            {
                return;
            }

            try
            {
                for (int i = 0; i < sc.Count; i++)
                {
                    File.Copy(sc[i], dc[i]);
                }

                var action = new IncludeAction(this, files);
                if (action.Do())
                {
                    _actionStack.Add(action);
                }
            }
            catch
            {
                View.ShowError("Error While Copying Files", "An error occurred while the files were being copied, aborting.");
            }
        }
Example #12
0
 public void Apply(IDictionary <string, object> src, ref List <ExpandoObject> dest)
 {
     IncludeAction.Execute(src, ref dest);
 }
Example #13
0
 [SetUp] public void SetUp()
 {
     processor     = Builder.CellProcessor();
     includeAction = new IncludeAction(processor);
 }
Example #14
0
        public void NewFolder(string name, string location)
        {
            string folder = Path.Combine(location, name);

            if (!Path.IsPathRooted(folder))
                folder = _project.Location + Path.DirectorySeparatorChar + folder;

            try
            {
                if (!Directory.Exists(folder))
                    Directory.CreateDirectory(folder);
            }
            catch {
                View.ShowError ("Error While Creating a Directory", "An error has occured while the directory: \"" + folder + "\" was beeing created, aborting...");
                return;
            }

            var action = new IncludeAction(this, null, new List<string> { folder });
            if(action.Do())
                _actionStack.Add(action);
        }
Example #15
0
        public void IncludeFolder(string initialDirectory, string[] dirs)
        {
            CopyAction caction = CopyAction.Copy;
            bool applyforall = false;

            List<string> ffiles = new List<string>();
            List<string> ddirectories = new List<string>();

            List<string> sc = new List<string>(), dc = new List<string>();

            foreach (string fol in dirs)
            {
                List<string> files = new List<string>();
                List<string> directories = new List<string>();

                string folder = fol;

                if (!folder.EndsWith(Path.DirectorySeparatorChar.ToString()))
                    folder += Path.DirectorySeparatorChar;

                files.AddRange(GetFiles(folder));
                directories.Add(folder);
                directories.AddRange(GetDirectories(folder));

                if (!folder.StartsWith(initialDirectory))
                {
                    string nd = folder.Replace(folder, initialDirectory + (new DirectoryInfo(folder)).Name + Path.DirectorySeparatorChar);

                    if (!applyforall)
                    if (!View.CopyOrLinkFolder(folder, Directory.Exists(nd), out caction, out applyforall))
                        return;

                    if (caction == CopyAction.Copy)
                    {
                        for (int i = 0; i < directories.Count; i++)
                            ddirectories.Add(directories[i].Replace(folder, initialDirectory + (new DirectoryInfo(folder)).Name + Path.DirectorySeparatorChar));

                        for (int i = 0; i < files.Count; i++)
                            ffiles.Add(files[i].Replace(folder, initialDirectory + (new DirectoryInfo(folder)).Name + Path.DirectorySeparatorChar));

                        sc.Add(folder);
                        dc.Add(nd);
                    }
                    else if (caction == CopyAction.Link)
                    {
                        string pl = _project.Location;
                        if (!pl.EndsWith(Path.DirectorySeparatorChar.ToString()))
                            pl += Path.DirectorySeparatorChar;

                        Uri folderUri = new Uri(pl);

                        for (int i = 0; i < directories.Count; i++)
                        {
                            Uri pathUri = new Uri(directories[i]);
                            ddirectories.Add(Uri.UnescapeDataString(folderUri.MakeRelativeUri(pathUri).ToString().Replace('/', Path.DirectorySeparatorChar)));
                        }

                        for (int i = 0; i < files.Count; i++)
                        {
                            Uri pathUri = new Uri(files[i]);
                            ffiles.Add(Uri.UnescapeDataString(folderUri.MakeRelativeUri(pathUri).ToString().Replace('/', Path.DirectorySeparatorChar)));
                        }
                    }
                }
                else
                {
                    ddirectories.AddRange(directories);
                    ffiles.AddRange(files);
                }
            }

            try
            {
                for (int i = 0; i < sc.Count; i++)
                    DirectoryCopy(sc[i], dc[i]);

                var action2 = new IncludeAction(this, ffiles, ddirectories);
                if (action2.Do())
                    _actionStack.Add(action2);
            }
            catch
            {
                View.ShowError("Error While Copying Files", "An error occurred while the directories were being copied, aborting.");
            }
        }
Example #16
0
        private void Include(string initialDirectory, string[] f)
        {
            List<string> files = new List<string>();
            files.AddRange(f);

            List<string> sc = new List<string>(), dc = new List<string>();
            int def = 0;

            for (int i = 0; i < files.Count; i++)
            {
                if (!files[i].StartsWith(initialDirectory))
                {
                    string newfile = Path.Combine(initialDirectory, Path.GetFileName(files[i]));
                    int daction = def;

                    if (daction == 1)
                        if (File.Exists(newfile))
                            daction = 2;

                    if (daction == 0)
                    {
                        bool applyforall;
                        CopyAction act;

                        if (!View.CopyOrLinkFile(files[i], File.Exists(newfile), out act, out applyforall))
                            return;

                        daction = (int)act + 1;
                        if (applyforall)
                            def = daction;
                    }

                    if (daction == 1)
                    {
                        sc.Add(files[i]);
                        dc.Add(newfile);
                        files[i] = newfile;
                    }
                    else if (daction == 3)
                    {
                        files.RemoveAt(i);
                        i--;
                    }
                }
            }

            if (files.Count == 0)
                return;

            try
            {
                for (int i = 0; i < sc.Count; i++)
                    File.Copy(sc[i], dc[i]);

                var action = new IncludeAction(this, files);
                if(action.Do())
                    _actionStack.Add(action);  
            }
            catch
            {
                View.ShowError("Error While Copying Files", "An error occurred while the files were being copied, aborting.");
            }
        }
Example #17
0
 [SetUp] public void SetUp()
 {
     processor     = Builder.CellProcessor();
     includeAction = new IncludeAction(processor);
     parsedInput   = new CellTree(new CellBase(result), "something");
 }
Example #18
0
        public void IncludeFolder(string initialDirectory)
        {
            // Root the path to the project.
            if (!Path.IsPathRooted(initialDirectory))
            {
                initialDirectory = Path.Combine(_project.Location, initialDirectory);
            }

            string folder;

            if (!View.ChooseContentFolder(initialDirectory, out folder))
            {
                return;
            }

            if (!folder.EndsWith(Path.DirectorySeparatorChar.ToString()))
            {
                folder += Path.DirectorySeparatorChar;
            }

            List <string> files       = new List <string>();
            List <string> directories = new List <string>();

            files.AddRange(GetFiles(folder));
            directories.Add(folder);
            directories.AddRange(GetDirectories(folder));

            if (!folder.StartsWith(initialDirectory))
            {
                CopyAction caction;

                if (!View.CopyOrLinkFolder(folder, out caction))
                {
                    return;
                }

                if (caction == CopyAction.Copy)
                {
                    for (int i = 0; i < directories.Count; i++)
                    {
                        try
                        {
                            DirectoryInfo dinfo  = new DirectoryInfo(folder);
                            string        newdir = directories[i].Replace(folder, initialDirectory + Path.DirectorySeparatorChar + dinfo.Name + Path.DirectorySeparatorChar);

                            if (!Directory.Exists(newdir))
                            {
                                Directory.CreateDirectory(newdir);
                            }

                            directories[i] = newdir;
                        }
                        catch
                        {
                            View.ShowError("Error While Creating Directories", "An error occurred while the directories were beeing created, aborting.");
                            return;
                        }
                    }

                    for (int i = 0; i < files.Count; i++)
                    {
                        try
                        {
                            DirectoryInfo dinfo   = new DirectoryInfo(folder);
                            string        newfile = files[i].Replace(folder, initialDirectory + Path.DirectorySeparatorChar + dinfo.Name + Path.DirectorySeparatorChar);

                            if (!File.Exists(newfile))
                            {
                                File.Copy(files[i], newfile);
                            }
                            else
                            {
                                View.ShowError("Error While Copying Files", "An error occurred while the files were being copied, the file:\"" +
                                               newfile + "\" already exists, aborting.");
                                return;
                            }

                            files[i] = newfile;
                        }
                        catch
                        {
                            View.ShowError("Error While Copying Files", "An error occurred while the files were being copied, aborting.");
                            return;
                        }
                    }
                }
                else
                {
                    string pl = _project.Location;
                    if (!pl.EndsWith(Path.DirectorySeparatorChar.ToString()))
                    {
                        pl += Path.DirectorySeparatorChar;
                    }

                    Uri folderUri = new Uri(pl);

                    for (int i = 0; i < directories.Count; i++)
                    {
                        Uri pathUri = new Uri(directories[i]);
                        directories[i] = Uri.UnescapeDataString(folderUri.MakeRelativeUri(pathUri).ToString().Replace('/', Path.DirectorySeparatorChar));
                    }
                }
            }

            var action2 = new IncludeAction(this, files, directories);

            if (action2.Do())
            {
                _actionStack.Add(action2);
            }
        }
        public void IncludeFolder(string initialDirectory, string[] dirs)
        {
            CopyAction caction     = CopyAction.Copy;
            bool       applyforall = false;

            List <string> ffiles       = new List <string>();
            List <string> ddirectories = new List <string>();

            List <string> sc = new List <string>(), dc = new List <string>();

            foreach (string fol in dirs)
            {
                List <string> files       = new List <string>();
                List <string> directories = new List <string>();

                string folder = fol;

                if (!folder.EndsWith(Path.DirectorySeparatorChar.ToString()))
                {
                    folder += Path.DirectorySeparatorChar;
                }

                files.AddRange(GetFiles(folder));
                directories.Add(folder);
                directories.AddRange(GetDirectories(folder));

                if (!folder.StartsWith(initialDirectory))
                {
                    string nd = folder.Replace(folder, Path.Combine(initialDirectory, (new DirectoryInfo(folder)).Name + Path.DirectorySeparatorChar));

                    if (!applyforall)
                    {
                        if (!View.CopyOrLinkFolder(folder, Directory.Exists(nd), out caction, out applyforall))
                        {
                            return;
                        }
                    }

                    if (caction == CopyAction.Copy)
                    {
                        for (int i = 0; i < directories.Count; i++)
                        {
                            ddirectories.Add(directories[i].Replace(folder, Path.Combine(initialDirectory, (new DirectoryInfo(folder)).Name + Path.DirectorySeparatorChar)));
                        }

                        for (int i = 0; i < files.Count; i++)
                        {
                            ffiles.Add(files[i].Replace(folder, Path.Combine(initialDirectory, (new DirectoryInfo(folder)).Name + Path.DirectorySeparatorChar)));
                        }

                        sc.Add(folder);
                        dc.Add(nd);
                    }
                    else if (caction == CopyAction.Link)
                    {
                        string pl = _project.Location;
                        if (!pl.EndsWith(Path.DirectorySeparatorChar.ToString()))
                        {
                            pl += Path.DirectorySeparatorChar;
                        }

                        Uri folderUri = new Uri(pl);

                        for (int i = 0; i < directories.Count; i++)
                        {
                            Uri pathUri = new Uri(directories[i]);
                            ddirectories.Add(Uri.UnescapeDataString(folderUri.MakeRelativeUri(pathUri).ToString().Replace('/', Path.DirectorySeparatorChar)));
                        }

                        for (int i = 0; i < files.Count; i++)
                        {
                            Uri pathUri = new Uri(files[i]);
                            ffiles.Add(Uri.UnescapeDataString(folderUri.MakeRelativeUri(pathUri).ToString().Replace('/', Path.DirectorySeparatorChar)));
                        }
                    }
                }
                else
                {
                    ddirectories.AddRange(directories);
                    ffiles.AddRange(files);
                }
            }

            try
            {
                for (int i = 0; i < sc.Count; i++)
                {
                    DirectoryCopy(sc[i], dc[i]);
                }

                var action2 = new IncludeAction(this, ffiles, ddirectories);
                if (action2.Do())
                {
                    _actionStack.Add(action2);
                }
            }
            catch
            {
                View.ShowError("Error While Copying Files", "An error occurred while the directories were being copied, aborting.");
            }
        }
Example #20
0
        public void IncludeFolder(string initialDirectory)
        {
            // Root the path to the project.
            if (!Path.IsPathRooted(initialDirectory))
                initialDirectory = Path.Combine(_project.Location, initialDirectory);

            string folder;
            if (!View.ChooseContentFolder(initialDirectory, out folder))
                return;

            if (!folder.EndsWith(Path.DirectorySeparatorChar.ToString()))
                folder += Path.DirectorySeparatorChar;

            List<string> files = new List<string>();
            List<string> directories = new List<string>();

            files.AddRange(GetFiles(folder));
            directories.Add(folder);
            directories.AddRange(GetDirectories(folder));

            if (!folder.StartsWith(initialDirectory))
            {
                CopyAction caction;

                if (!View.CopyOrLinkFolder(folder, out caction))
                    return;

                if (caction == CopyAction.Copy)
                {

                    for (int i = 0; i < directories.Count; i++)
                    {
                        try
                        {
                            DirectoryInfo dinfo = new DirectoryInfo(folder);
                            string newdir = directories[i].Replace(folder, initialDirectory + Path.DirectorySeparatorChar + dinfo.Name + Path.DirectorySeparatorChar);

                            if (!Directory.Exists(newdir))
                                Directory.CreateDirectory(newdir);

                            directories[i] = newdir;
                        }
                        catch
                        {
                            View.ShowError("Error While Creating Directories", "An error occurred while the directories were beeing created, aborting.");
                            return;
                        }
                    }

                    for (int i = 0; i < files.Count; i++)
                    {
                        try
                        {
                            DirectoryInfo dinfo = new DirectoryInfo(folder);
                            string newfile = files[i].Replace(folder, initialDirectory + Path.DirectorySeparatorChar + dinfo.Name + Path.DirectorySeparatorChar);

                            if (!File.Exists(newfile))
                                File.Copy(files[i], newfile);
                            else
                            {
                                View.ShowError("Error While Copying Files", "An error occurred while the files were being copied, the file:\"" +
                                    newfile + "\" already exists, aborting.");
                                return;
                            }

                            files[i] = newfile;
                        }
                        catch
                        {
                            View.ShowError("Error While Copying Files", "An error occurred while the files were being copied, aborting.");
                            return;
                        }
                    }
                }
                else
                {
                    string pl = _project.Location;
                    if (!pl.EndsWith(Path.DirectorySeparatorChar.ToString()))
                        pl += Path.DirectorySeparatorChar;

                    Uri folderUri = new Uri(pl);

                    for (int i = 0; i < directories.Count; i++)
                    {
                        Uri pathUri = new Uri(directories[i]);
                        directories[i] = Uri.UnescapeDataString(folderUri.MakeRelativeUri(pathUri).ToString().Replace('/', Path.DirectorySeparatorChar));
                    }
                }
            }

            var action2 = new IncludeAction(this, files, directories);
            if(action2.Do())
                _actionStack.Add(action2);
        }