private IList <PluginInfoResponseModel> PluginInfoModelToResponseModel(IList <PluginInfoModel> pluginInfoModels, PluginConfigModel pluginConfigModel) { IList <PluginInfoResponseModel> responseModels = new List <PluginInfoResponseModel>(); #region 添加插件状态信息 foreach (var model in pluginInfoModels) { PluginInfoResponseModel responseModel = new PluginInfoResponseModel(); responseModel.Author = model.Author; responseModel.Description = model.Description; responseModel.DisplayName = model.DisplayName; responseModel.PluginId = model.PluginId; responseModel.SupportedVersions = model.SupportedVersions; responseModel.Version = model.Version; if (pluginConfigModel.EnabledPlugins.Contains(model.PluginId)) { responseModel.Status = PluginStatus.Enabled; } else if (pluginConfigModel.DisabledPlugins.Contains(model.PluginId)) { responseModel.Status = PluginStatus.Disabled; } else if (pluginConfigModel.UninstalledPlugins.Contains(model.PluginId)) { responseModel.Status = PluginStatus.Uninstalled; } responseModels.Add(responseModel); } #endregion return(responseModels); }
public async Task <ActionResult <ResponseModel> > Details(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 PluginInfoModel pluginInfoModel = PluginInfoModelFactory.Create(pluginId); PluginInfoResponseModel pluginInfoResponseModel = PluginInfoModelToResponseModel(new List <PluginInfoModel>() { pluginInfoModel }, pluginConfigModel).FirstOrDefault(); responseData.code = 1; responseData.message = "查看详细成功"; responseData.data = pluginInfoResponseModel; } catch (Exception ex) { responseData.code = -1; responseData.message = "查看详细失败: " + ex.Message; } return(await Task.FromResult(responseData)); }