示例#1
0
        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);
        }
示例#2
0
        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);
        }