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); }