private void upgradecompany_file(List <Foresight.DataAccess.Company> company_list, Foresight.DataAccess.SiteVersion site_version, out string error_sql_sites, out string error_file_sites, out List <Foresight.DataAccess.Company> company_list_out) { error_sql_sites = string.Empty; error_file_sites = string.Empty; company_list_out = new List <Foresight.DataAccess.Company>(); var config = new Utility.SiteConfig(); string base_url = config.SITE_URL; string SitePath = config.SitePath; var version_list = Foresight.DataAccess.SiteVersion.GetSiteVersions().Where(p => p.VersionType.Equals("platform") || string.IsNullOrEmpty(p.VersionType)).OrderByDescending(p => p.VersionCode); foreach (var company in company_list) { if (!company.BaseURL.ToLower().StartsWith(base_url)) { continue; } string SiteName = company.BaseURL.Replace(base_url, ""); company.VersionCode = company.VersionCode > 0 ? company.VersionCode : 1; string FilePath = string.Empty; for (int i = company.VersionCode + 1; i <= site_version.VersionCode; i++) { var current_version = version_list.FirstOrDefault(p => p.VersionCode == i); if (current_version == null) { continue; } string SqlPath = current_version.SqlPath; if (!string.IsNullOrEmpty(SqlPath)) { string extension = System.IO.Path.GetExtension(current_version.SqlPath).ToLower(); if (extension.ToLower().Contains("sql")) { try { string SQLFullPath = HttpContext.Current.Server.MapPath("~" + SqlPath); string DatabaseName = "yy_" + SiteName; Utility.SQLHelper.ExecuteSQLFile(SQLFullPath, DatabaseName); if (!company_list_out.Select(p => p.CompanyID).ToList().Contains(company.CompanyID)) { company_list_out.Add(company); } } catch (Exception ex) { error_sql_sites += company.CompanyName + ","; LogHelper.WriteError("更新数据库失败", company.CompanyName, ex); } } } if (!string.IsNullOrEmpty(current_version.FilePath)) { FilePath = current_version.FilePath; } } if (!string.IsNullOrEmpty(FilePath)) { string extension = System.IO.Path.GetExtension(FilePath).ToLower(); if (extension.ToLower().Contains("zip")) { try { string FileFullPath = HttpContext.Current.Server.MapPath("~" + FilePath); string SiteFullPath = SitePath + SiteName; Utility.Tools.UnZipFile(FileFullPath, SiteFullPath, ""); if (!company_list_out.Select(p => p.CompanyID).ToList().Contains(company.CompanyID)) { company_list_out.Add(company); } } catch (Exception ex) { error_file_sites += company.CompanyName + ","; LogHelper.WriteError("更新系统文件失败", company.CompanyName, ex); } } } } }
private void upgrade_out_company_file(List <Foresight.DataAccess.Company> company_list, Foresight.DataAccess.SiteVersion site_version, out string error_sites, out List <Foresight.DataAccess.Company> company_list_out) { error_sites = string.Empty; company_list_out = new List <Foresight.DataAccess.Company>(); var config = new Utility.SiteConfig(); string base_url = config.SITE_URL; string SitePath = config.SitePath; var version_list = Foresight.DataAccess.SiteVersion.GetSiteVersions(); int VersionCode = site_version.VersionCode; foreach (var company in company_list) { company.VersionCode = company.VersionCode > 0 ? company.VersionCode : 1; List <Utility.SiteVersionModel> site_version_model_list = new List <Utility.SiteVersionModel>(); for (int i = company.VersionCode + 1; i <= VersionCode; i++) { var current_version = version_list.FirstOrDefault(p => p.VersionCode == i); if (current_version == null) { continue; } Utility.SiteVersionModel site_version_model = null; string SqlPath = current_version.SqlPath; if (!string.IsNullOrEmpty(SqlPath)) { string extension = System.IO.Path.GetExtension(current_version.SqlPath).ToLower(); if (extension.ToLower().Contains("sql")) { if (site_version_model == null) { site_version_model = new Utility.SiteVersionModel(); site_version_model.VersionCode = current_version.VersionCode; } site_version_model.SqlPath = WebUtil.GetContextPath() + SqlPath; } } string FilePath = current_version.FilePath; if (!string.IsNullOrEmpty(FilePath)) { string extension = System.IO.Path.GetExtension(FilePath).ToLower(); if (extension.ToLower().Contains("zip")) { if (site_version_model == null) { site_version_model = new Utility.SiteVersionModel(); site_version_model.VersionCode = current_version.VersionCode; } site_version_model.FilePath = WebUtil.GetContextPath() + FilePath; } } if (site_version_model != null) { site_version_model_list.Add(site_version_model); } } if (EncryptHelper.DoUpgradeSite(company, site_version_model_list, VersionCode, out error_sites)) { company_list_out.Add(company); } } }