public void AddReleaseNote(ReleaseItem pluginReadme)
        {
            if (items == null)
            {
                items = new List <ReleaseItem> {
                    pluginReadme
                };
            }
            else
            {
                bool exist = false;
                foreach (var item in items)
                {
                    if (item.version == pluginReadme.version)
                    {
                        item.content = pluginReadme.content;
                        item.author  = pluginReadme.author;
                        exist        = true;
                        break;
                    }
                }

                if (!exist)
                {
                    items.Add(pluginReadme);
                }
            }
        }
Beispiel #2
0
        void OnResponse(EditorHttpResponse response, Action <List <PackageData> > onResponse)
        {
            if (response.Type == ResponseType.SUCCEED)
            {
                var responseJson =
                    JsonUtility.FromJson <QFrameworkServerResultFormat <List <ResultPackage> > >(response.Text);

                if (responseJson != null && responseJson.code == 1)
                {
                    var packageInfosJson = responseJson.data;

                    var packageDatas = new List <PackageData>();
                    foreach (var packageInfo in packageInfosJson)
                    {
                        var name = packageInfo.name;

                        var package = packageDatas.Find(packageData => packageData.Name == name);

                        if (package == null)
                        {
                            package = new PackageData()
                            {
                                Name = name,
                            };

                            packageDatas.Add(package);
                        }

                        var id              = packageInfo.id;
                        var version         = packageInfo.version;
                        var url             = packageInfo.downloadUrl;
                        var installPath     = packageInfo.installPath;
                        var releaseNote     = packageInfo.releaseNote;
                        var createAt        = packageInfo.createAt;
                        var creator         = packageInfo.username;
                        var releaseItem     = new ReleaseItem(version, releaseNote, creator, DateTime.Parse(createAt), id);
                        var accessRightName = packageInfo.accessRight;
                        var typeName        = packageInfo.type;

                        var packageType = PackageType.FrameworkModule;

                        switch (typeName)
                        {
                        case "fm":
                            packageType = PackageType.FrameworkModule;
                            break;

                        case "s":
                            packageType = PackageType.Shader;
                            break;

                        case "agt":
                            packageType = PackageType.AppOrGameDemoOrTemplate;
                            break;

                        case "p":
                            packageType = PackageType.Plugin;
                            break;

                        case "master":
                            packageType = PackageType.Master;
                            break;
                        }

                        var accessRight = PackageAccessRight.Public;

                        switch (accessRightName)
                        {
                        case "public":
                            accessRight = PackageAccessRight.Public;
                            break;

                        case "private":
                            accessRight = PackageAccessRight.Private;
                            break;
                        }

                        package.PackageVersions.Add(new PackageVersion()
                        {
                            Id          = id,
                            Version     = version,
                            DownloadUrl = url,
                            InstallPath = installPath,
                            Type        = packageType,
                            AccessRight = accessRight,
                            Readme      = releaseItem,
                        });

                        package.readme.AddReleaseNote(releaseItem);
                    }

                    packageDatas.ForEach(packageData =>
                    {
                        packageData.PackageVersions.Sort((a, b) =>
                                                         b.VersionNumber - a.VersionNumber);
                        packageData.readme.items.Sort((a, b) =>
                                                      b.VersionNumber - a.VersionNumber);
                    });

                    onResponse(packageDatas);

                    new PackageInfosRequestCache()
                    {
                        PackageDatas = packageDatas
                    }.Save();
                }
            }
            else
            {
                onResponse(null);
            }
        }