public static PluginReadmeModel Create(string pluginId)
        {
            PluginReadmeModel readmeModel          = new PluginReadmeModel();
            string            pluginDir            = Path.Combine(PluginPathProvider.PluginsRootPath(), pluginId);
            string            pluginReadmeFilePath = Path.Combine(pluginDir, ReadmeFile);

            if (!File.Exists(pluginReadmeFilePath))
            {
                return(null);
            }
            try
            {
                string readmeStr = File.ReadAllText(pluginReadmeFilePath, Encoding.UTF8);
                readmeModel.PluginId = pluginId;
                readmeModel.Content  = readmeStr;
            }
            catch (Exception ex)
            {
                readmeModel = null;
            }

            return(readmeModel);
        }
        public async Task <ActionResult <ResponseModel> > Readme(string pluginId)
        {
            ResponseModel responseData = new ResponseModel();

            try
            {
                var pluginConfigModel     = PluginConfigModelFactory.Create();
                var allPluginConfigModels = pluginConfigModel.EnabledPlugins.Concat(pluginConfigModel.DisabledPlugins)
                                            .Concat(pluginConfigModel.UninstalledPlugins).ToList();
                #region 效验

                if (!allPluginConfigModels.Contains(pluginId))
                {
                    responseData.code    = -1;
                    responseData.message = $"查看文档失败: 不存在 {pluginId} 插件";
                    return(await Task.FromResult(responseData));
                }

                #endregion

                PluginReadmeModel         readmeModel         = PluginReadmeModelFactory.Create(pluginId);
                PluginReadmeResponseModel readmeResponseModel = new PluginReadmeResponseModel();
                readmeResponseModel.Content  = readmeModel?.Content ?? "";
                readmeResponseModel.PluginId = pluginId;

                responseData.code    = 1;
                responseData.message = "查看文档成功";
                responseData.data    = readmeResponseModel;
            }
            catch (Exception ex)
            {
                responseData.code    = -1;
                responseData.message = "查看文档失败: " + ex.Message;
            }

            return(await Task.FromResult(responseData));
        }