示例#1
0
        public async Task <ResponseResult> Install([FromForm] string package, [FromForm] bool IsMigration)
        {
            var result = new ResponseResult();

            if (package == null)
            {
                result.Code    = BusinessCode.Params_Error;
                result.Message = nameof(BusinessCode.Params_Error);
                return(result);
            }
            var contentRootPath = HttpContext.RequestServices.GetService <IHostEnvironment>().ContentRootPath;
            var fullpath        = Path.Combine(contentRootPath, package.Trim().TrimStart('/'));

            if (_pluginPackageManager.UnZipPackage(fullpath, out PluginInfoDto pluginInfo))
            {
                pluginInfo.IsMigration = IsMigration;
                await _pluginManager.AddPlugins(pluginInfo);
            }
            else
            {
                result.Code    = 500;
                result.Message = "unzip error";
            }

            //using (FileStream fs = new FileStream(fullpath, FileMode.Open))
            //{
            //    var pluginPackage = new PluginPackage(fs, fullpath, pluginOptions);
            //    pluginPackage.SetupFolder();
            //    pluginPackage.PluginInfo.IsMigration = IsMigration;
            //    await _pluginManager.AddPlugins(pluginPackage.PluginInfo);
            //}
            return(result);
        }