public Output Process_Commands()
        {
            Guid rootId;

            try
            {
                rootId = new Guid(root);
            }
            catch (Exception)
            {
                rootId = SiteInitializer.CurrentFrontendRootNodeId;
            }
            Set_Root(rootId);

            // Finds the right resource object
            Resource rsc;

            switch (rscName)
            {
            case "errors":
                rsc = new ErrorResource(this) as Resource;
                break;

            case "audit":
                rsc = new AuditResource(this) as Resource;
                break;

            case "bpages":
                rsc = new BackendPageResource(this) as Resource;
                break;

            case "documents":
                rsc = new DocResource(this) as Resource;
                break;

            case "images":
                rsc = new ImageResource(this) as Resource;
                break;

            case "videos":
                rsc = new VideoResource(this) as Resource;
                break;

            case "sitesync":
                rsc = new SiteSyncResource(this) as Resource;
                break;

            case "dynmod":
                rsc = new DynamicModuleResource(this) as Resource;
                break;

            case "all":
                rsc = new AllResource(this) as Resource;
                break;

            case null:
            case "pages":
            default:
                rsc = new FrontendPageResource(this) as Resource;
                break;
            }

            // Goes through all the commands
            foreach (string cmd in commands.Split(','))
            {
                // Finds the command and the arguments (when any)
                string command   = cmd.Trim().ToLower();
                string firstWord = command.Split(' ').First();
                command = command.Substring(firstWord.Length).TrimStart();
                Arguments args = new Arguments(command);

                try
                {
                    // Executes the command
                    switch (firstWord)
                    {
                    case "l":
                    case "list":
                        rsc.CMD_list(args, rootId);
                        break;

                    case "filter":
                        rsc.CMD_filter(args);
                        break;

                    case "update":
                        rsc.CMD_update(args);
                        break;

                    case "cd":
                        rsc.CMD_cd(args, rootId);
                        break;

                    case "touch":
                        rsc.CMD_touch();
                        break;

                    case "provider":
                        rsc.CMD_provider(args, rootId);
                        break;

                    case "bpages":
                        CMD_bpages();
                        break;

                    case "call":
                        rsc.CMD_call(args);
                        break;

                    case "pages":
                        CMD_pages();
                        break;

                    case "errors":
                        CMD_errors();
                        break;

                    case "audit":
                        CMD_audittrail();
                        break;

                    case "docs":
                    case "documents":
                        CMD_documents();
                        break;

                    case "images":
                        CMD_images();
                        break;

                    case "videos":
                        CMD_videos();
                        break;

                    case "sitesync":
                        CMD_sitesync();
                        break;

                    case "dynmod":
                        CMD_dynmodules();
                        break;

                    case "all":
                        CMD_all();
                        break;

                    case "site":
                        CMD_site(rsc, args);
                        return(output);

                    case "summary":
                        rsc.CMD_summary(args);
                        break;

                    case "help":
                        rsc.CMD_help();
                        break;

                    case "display":
                        rsc.CMD_display(args);
                        break;

                    case "compare":
                        rsc.CMD_compare(args);
                        break;

                    case "republish":
                        rsc.CMD_republish(args);
                        break;

                    default:
                        Set_Error("Invalid keyword: " + firstWord);
                        Set_Result(rsc);
                        return(output);
                    }
                }
                catch (Exception e)
                {
                    Exception realerror = e;
                    string    error     = realerror.Message;

                    while (realerror.InnerException != null)
                    {
                        realerror = realerror.InnerException;
                        error    += "\n" + realerror.Message;
                    }

                    Set_Error(error);
                    return(output);
                }
            }

            Set_Result(rsc);

            return(output);
        }
        public static List <SyncItem> CMD_sitesync_dest()
        {
            SiteSyncResource rsc = new SiteSyncResource(null);

            return(rsc.CMD_sitesync_dest());
        }