public void GetFileMetadata(String package, String ns, String filename, int version, String userId, Action <GetFileMetadataResponse> action, bool verbose = false) { string uniqueId = GetUniqueId(); dispatcher_[uniqueId] = (CsMessage response) => { List <RepoFile> dependencies = new List <RepoFile>(); int count = 1; while (true) { if (!response.containsKey($"dependency-{count}")) { break; } string fileInfo = response.value($"dependency-{count}"); dependencies.Add(RepoFile.parse(fileInfo)); count++; } RepoFileMetadata metadata = new RepoFileMetadata { Author = response.value("author"), Description = response.value("description"), Dependencies = dependencies }; action(new GetFileMetadataResponse { Metadata = metadata, RequestId = uniqueId }); dispatcher_.Remove(uniqueId); }; CsMessage msg = new CsMessage(); msg.add("to", CsEndPoint.toString(serverEndPoint_)); msg.add("from", CsEndPoint.toString(endPoint_)); msg.add("command", "get-file-metadata"); msg.add("requestId", uniqueId); msg.add("userId", userId); if (verbose) { msg.add("verbose", "yes"); } msg.add("package", package); msg.add("namespace", ns); msg.add("filename", filename); msg.add("version", version.ToString()); translater_.postMessage(msg); }
public void GetPackageFiles(String packageName, String userId, Action <GetPackageFilesResponse> action, bool verbose = false) { string uniqueId = GetUniqueId(); dispatcher_[uniqueId] = (CsMessage response) => { List <RepoFile> repoFiles = new List <RepoFile>(); int count = 1; while (true) { if (!response.containsKey($"file-{count}")) { break; } string fileInfo = response.value($"file-{count}"); repoFiles.Add(RepoFile.parse(fileInfo)); count++; } action(new GetPackageFilesResponse { RepoFiles = repoFiles, RequestId = uniqueId }); dispatcher_.Remove(uniqueId); }; CsMessage msg = new CsMessage(); msg.add("to", CsEndPoint.toString(serverEndPoint_)); msg.add("from", CsEndPoint.toString(endPoint_)); msg.add("command", "get-package-files"); msg.add("requestId", uniqueId); msg.add("userId", userId); if (verbose) { msg.add("verbose", "yes"); } msg.add("package", packageName); translater_.postMessage(msg); }