Ejemplo n.º 1
0
        public static void Main(string[] args)
        {
            string progname = "lccs";
            string host = "http://collaboration.adobelivecycle.com";
            int argc = 0;

            while (argc < args.Length)
            {
                string arg = args[argc];

                if (arg.StartsWith("--host="))
                    host = arg.Substring(7);
                else if (arg.Equals("--debug"))
                    Utils.DEBUG = true;
                else
                    break;

                argc++;
            }

            if (args.Length - argc < 3)
                usage(progname);

            string account = args[argc++];
            string username = args[argc++];
            string password = args[argc++];

            AccountManager am = new AccountManager(host + "/" + account);
            am.login(username, password);

            if (args.Length - argc == 0 || args[argc].Equals("--list"))
            {
                Console.WriteLine("==== template list for " + account + " ====");
                try
                {
                    foreach (Item aTemplate in am.listTemplates())
                    {
                        Console.WriteLine(aTemplate.name + " : " + aTemplate.created);
                    }
                }
                catch (Exception e)
                {
                    Utils.printException(e);
                }

                Console.WriteLine("==== room list for " + account + " ====");
                try
                {
                    foreach (Item aRoom in am.listRooms())
                    {
                        Console.WriteLine(aRoom.name + " : " + aRoom.desc + " : " + aRoom.created);
                    }
                }
                catch (Exception e)
                {
                    Utils.printException(e);
                }

            }
            else if (args[argc].Equals("--create"))
            {
                am.createRoom(args[argc + 1], (args.Length - argc) > 2 ? args[argc + 2] : null);

            }
            else if (args[argc].Equals("--create-autodelete"))
            {
                am.createRoom(args[argc + 1], (args.Length - argc) > 2 ? args[argc + 2] : null, true);

            }
            else if (args[argc].Equals("--delete"))
            {
                am.deleteRoom(args[argc + 1]);

            }
            else if (args[argc].Equals("--delete-template"))
            {
                am.deleteTemplate(args[argc + 1]);

            }
            else if (args[argc].Equals("--ext-auth"))
            {
                int role = UserRole.LOBBY;

                if (args.Length - argc >= 6)
                    role = getRole(args[argc + 5].ToLower());

                Session session = am.getSession(args[argc + 2]);
                string token = session.getAuthenticationToken(args[argc + 1], args[argc + 3], args[argc + 4], role);
                Console.WriteLine(token);
                Console.WriteLine("userID: " + session.getUserID(args[argc + 4]));

            }
            else if (args[argc].Equals("--invalidate"))
            {
                Session session = am.getSession(args[argc + 1]);
                am.invalidateSession(session);

            }
            else if (args[argc].Equals("--info"))
            {
                if ((args.Length - argc) == 1)
                    Console.WriteLine(am.getAccountInfo());
                else
                    Console.WriteLine(am.getRoomInfo(args[argc + 1]));

            }
            else if (args[argc].Equals("--get-nodes"))
            {
                Console.WriteLine(am.getNodes(args[argc + 1], args[argc + 2]));
            }

            else if (args[argc].Equals("--get-node-configuration")) {
                    Console.WriteLine(am.getNodeConfiguration(args[argc+1], args[argc+2], args[argc+3]));
            }

            else if (args[argc].Equals("--fetch-items")) {
                    Console.WriteLine(am.fetchItems(args[argc+1], args[argc+2], args[argc+3]));
            }

            else if (args[argc].Equals("--register-hook")) {
                    string endpoint = args[argc+1];
                    string token = (args.Length - argc) > 2 ? args[argc+2] : null;
                    am.registerHook(endpoint, token);
            }

            else if (args[argc].Equals("--unregister-hook")) {
                    am.unregisterHook();
            }

            else if (args[argc].Equals("--hook-info")) {
                    Console.WriteLine(am.getHookInfo());
            }

            else if (args[argc].Equals("--register-repository")) {
                    string endpoint = args[argc+1];
                    string token = (args.Length - argc) > 2 ? args[argc+2] : null;
                    am.registerRepository(endpoint, token);
            }

            else if (args[argc].Equals("--unregister-repository")) {
                    am.unregisterRepository();
            }

            else if (args[argc].Equals("--repository-info")) {
                    Console.WriteLine(am.getRepositoryInfo());
            }

            else if (args[argc].Equals("--start-recording")) {
                    string room = args[argc+1];
                    string archiveId = (args.Length - argc) > 2 ? args[argc+2] : "__defaultArchive__";
                    bool guestsAllowed = (args.Length - argc) > 3 ? args[argc+3].Equals("true") : true;
                    am.startRecording(room, archiveId, guestsAllowed);
            }

            else if (args[argc].Equals("--stop-recording")) {
                    string room = args[argc+1];
                    am.stopRecording(room);
            }

            else if (args[argc].Equals("--subscribe-collection")) {
                    string room = args[argc+1];
                    string collectionName = args[argc+2];
                    am.subscribeCollection(room, collectionName);
            }

            else if (args[argc].Equals("--unsubscribe-collection")) {
                    string room = args[argc+1];
                    string collectionName = args[argc+2];
                    am.unsubscribeCollection(room, collectionName);
            }

            else if (args[argc].Equals("--create-node")) {
                    String room = args[argc+1];
                    String collectionName = args[argc+2];
                    String nodeName = (args.Length - argc) > 3 ? args[argc+3] : null;
                    am.createNode(room, collectionName, nodeName);
            }

            else if (args[argc].Equals("--remove-node")) {
                    string room = args[argc+1];
                    string collectionName = args[argc+2];
                    string nodeName = (args.Length - argc) > 3 ? args[argc+3] : null;
                    am.removeNode(room, collectionName, nodeName);
            }

            else if (args[argc].Equals("--set-user-role")) {
                    string room = args[argc+1];
                    string userID = args[argc+2];
                    int role = getRole(args[argc+3]);
                    string collectionName = (args.Length - argc) > 4 ? args[argc+4] : null;
                    string nodeName = (args.Length - argc) > 5 ? args[argc+5] : null;
                    am.setUserRole(room, userID, role, collectionName, nodeName);
            }

            else if (args[argc].Equals("--publish-item")) {
                    string room = args[argc+1];
                    string collectionName = args[argc+2];
                    string nodeName = args[argc+3];
                    string itemID = args[argc+4];
                    string body = args[argc+5];

                    Dictionary<string, object> itemVO = new Dictionary<string, object>();
                    itemVO.Add("itemID", itemID);
                    itemVO.Add("body", body);
                    am.publishItem(room, collectionName, nodeName, itemVO);
            }

            else if (args[argc].Equals("--retract-item")) {
                    string room = args[argc+1];
                    string collectionName = args[argc+2];
                    string nodeName = args[argc+3];
                    string itemID = args[argc+4];
                    am.retractItem(room, collectionName, nodeName, itemID);
            }

            else
                usage(progname);
        }