private bool UpdateWebConfig(out string errorMessage) { errorMessage = string.Empty; var returnValue = false; try { var isProtectData = TranslateUtils.ToBool(DdlIsProtectData.SelectedValue); var databaseType = DatabaseTypeUtils.GetEnumType(DdlSqlDatabaseType.SelectedValue); var connectionString = GetConnectionString(true); WebConfigUtils.UpdateWebConfig(isProtectData, databaseType, connectionString, "api", "SiteServer", "Home", StringUtils.GetShortGuid(), false); DataProvider.Reset(); returnValue = true; } catch (Exception e) { errorMessage = e.Message; } return(returnValue); }
public void Configuration(IAppBuilder app) { app.MapSignalR(); GlobalConfiguration.Configure(WebApiConfig.Register); WebConfigUtils.Load(HostingEnvironment.ApplicationPhysicalPath); var c = PluginManager.PluginInfoListRunnable; }
private string GetConnectionString(bool isDatabaseName) { var databaseType = DatabaseTypeUtils.GetEnumType(DdlSqlDatabaseType.SelectedValue); var databaseName = string.Empty; if (isDatabaseName) { databaseName = databaseType == DatabaseType.Oracle ? TbSqlOracleDatabase.Text : DdlSqlDatabaseName.SelectedValue; } return(WebConfigUtils.GetConnectionString(databaseType, TbSqlServer.Text, TranslateUtils.ToBool(DdlIsDefaultPort.SelectedValue), TranslateUtils.ToInt(TbSqlPort.Text), TbSqlUserName.Text, HihSqlHiddenPassword.Value, databaseName)); }
public void Configuration(IAppBuilder app) { app.MapSignalR(); var config = GlobalConfiguration.Configuration; config.MapHttpAttributeRoutes(); var corsAttr = new EnableCorsAttribute("*", "*", "*") { SupportsCredentials = true }; config.EnableCors(corsAttr); //config.Routes.MapHttpRoute( // "DefaultApi", // "api/{controller}/{id}", // new { id = RouteParameter.Optional } //); //config.Routes.Add("name", new HttpRoute()); RouteTable.Routes.Ignore(""); //Allow index.html to load var jsonFormatter = config.Formatters.JsonFormatter; var settings = new JsonSerializerSettings { ContractResolver = new CamelCasePropertyNamesContractResolver() }; var timeFormat = new IsoDateTimeConverter { DateTimeFormat = "yyyy-MM-dd HH:mm:ss" }; settings.Converters.Add(timeFormat); jsonFormatter.SerializerSettings = settings; jsonFormatter.Indent = true; var formatters = config.Formatters.Where(formatter => formatter.SupportedMediaTypes.Any(media => media.MediaType == "application/xml")) .ToList(); foreach (var match in formatters) { config.Formatters.Remove(match); } config.EnsureInitialized(); WebConfigUtils.Load(HostingEnvironment.ApplicationPhysicalPath); var c = PluginManager.PluginInfoListRunnable; }
public static ConfigInfo LoadConfigByArgs(string databaseType, string connectionString) { var configInfo = new ConfigInfo { DatabaseType = databaseType, ConnectionString = connectionString, BackupConfig = new BackupConfigInfo(), RestoreConfig = new RestoreConfigInfo(), }; WebConfigUtils.Load(PhysicalApplicationPath, configInfo.DatabaseType, configInfo.ConnectionString); return(configInfo); }
public static async Task Execute(IJobContext context) { if (!CliUtils.ParseArgs(Options, context.Args)) { return; } if (_isHelp) { PrintUsage(); return; } var version = Assembly.GetExecutingAssembly().GetName().Version.ToString(); await Console.Out.WriteLineAsync($"SiteServer CLI Version: {version.Substring(0, version.Length - 2)}"); await Console.Out.WriteLineAsync($"Work Directory: {CliUtils.PhysicalApplicationPath}"); await Console.Out.WriteLineAsync(); if (string.IsNullOrEmpty(_webConfigFileName)) { _webConfigFileName = "web.config"; } if (FileUtils.IsFileExists(PathUtils.Combine(CliUtils.PhysicalApplicationPath, _webConfigFileName))) { WebConfigUtils.Load(CliUtils.PhysicalApplicationPath, _webConfigFileName); try { var cmsVersion = FileVersionInfo.GetVersionInfo(PathUtils.Combine(CliUtils.PhysicalApplicationPath, "Bin", "SiteServer.CMS.dll")).ProductVersion; await Console.Out.WriteLineAsync($"SitServer CMS Version: {cmsVersion}"); } catch { // ignored } await Console.Out.WriteLineAsync($"Database Type: {WebConfigUtils.DatabaseType.Value}"); await Console.Out.WriteLineAsync($"Connection String Decode: {WebConfigUtils.ConnectionString}"); await Console.Out.WriteLineAsync($"Connection String Encode: {TranslateUtils.EncryptStringBySecretKey(WebConfigUtils.ConnectionString, WebConfigUtils.SecretKey)}"); } }
public static void LoadPlugins(string applicationPhysicalPath) { WebConfigUtils.Load(applicationPhysicalPath); _pluginInfoListRunnable = PluginInfoListRunnable; Context.Initialize(new EnvironmentImpl(WebConfigUtils.DatabaseType, WebConfigUtils.ConnectionString, WebConfigUtils.AdminDirectory, WebConfigUtils.PhysicalApplicationPath), new ApiCollectionImpl { AdminApi = AdminApi.Instance, ConfigApi = ConfigApi.Instance, ContentApi = ContentApi.Instance, DatabaseApi = DataProvider.DatabaseApi, ChannelApi = ChannelApi.Instance, ParseApi = ParseApi.Instance, PluginApi = PluginApi.Instance, SiteApi = SiteApi.Instance, UserApi = UserApi.Instance, UtilsApi = UtilsApi.Instance }); }
public static ConfigInfo LoadConfigByFile(string configFileName) { ConfigInfo configInfo = null; if (string.IsNullOrEmpty(configFileName)) { configFileName = "cli.json"; } if (FileUtils.IsFileExists(PathUtils.Combine(PhysicalApplicationPath, configFileName))) { configInfo = TranslateUtils.JsonDeserialize <ConfigInfo>( FileUtils.ReadText(PathUtils.Combine(PhysicalApplicationPath, configFileName), Encoding.UTF8)); if (configInfo != null) { WebConfigUtils.Load(PhysicalApplicationPath, configInfo.DatabaseType, configInfo.ConnectionString); if (configInfo.BackupConfig == null) { configInfo.BackupConfig = new BackupConfigInfo(); } if (configInfo.RestoreConfig == null) { configInfo.RestoreConfig = new RestoreConfigInfo(); } } } else if (FileUtils.IsFileExists(PathUtils.Combine(PhysicalApplicationPath, "web.config"))) { WebConfigUtils.Load(PhysicalApplicationPath, "web.config"); configInfo = new ConfigInfo { DatabaseType = WebConfigUtils.DatabaseType.Value, ConnectionString = WebConfigUtils.ConnectionString, BackupConfig = new BackupConfigInfo(), RestoreConfig = new RestoreConfigInfo(), }; } return(configInfo); }
//private static List<PluginInstance> _pluginInfoListRunnable; public static void LoadPlugins(string applicationPhysicalPath) { WebConfigUtils.Load(applicationPhysicalPath, PathUtils.Combine(applicationPhysicalPath, WebConfigUtils.WebConfigFileName)); Context.Initialize(new EnvironmentImpl(WebConfigUtils.DatabaseType, WebConfigUtils.ConnectionString, WebConfigUtils.HomeDirectory, WebConfigUtils.AdminDirectory, WebConfigUtils.PhysicalApplicationPath, ApiManager.ApiUrl), new ApiCollectionImpl { AdminApi = AdminApi.Instance, ConfigApi = ConfigApi.Instance, ContentApi = ContentApi.Instance, ChannelApi = ChannelApi.Instance, ParseApi = ParseApi.Instance, PluginApi = PluginApi.Instance, SiteApi = SiteApi.Instance, UserApi = UserApi.Instance, UtilsApi = UtilsApi.Instance }); //_pluginInfoListRunnable = PluginInfoListRunnable; }
public async Task Execute(IJobContext context) { if (!CliUtils.ParseArgs(_options, context.Args)) { return; } if (_isHelp) { PrintUsage(); return; } var version = Assembly.GetExecutingAssembly().GetName().Version.ToString(); await Console.Out.WriteLineAsync($"SiteServer CLI 版本号: {version.Substring(0, version.Length - 2)}"); await Console.Out.WriteLineAsync($"当前文件夹: {CliUtils.PhysicalApplicationPath}"); await Console.Out.WriteLineAsync(); var webConfigPath = CliUtils.GetWebConfigPath(_configFile); if (FileUtils.IsFileExists(webConfigPath)) { WebConfigUtils.Load(CliUtils.PhysicalApplicationPath, webConfigPath); try { var cmsVersion = FileVersionInfo.GetVersionInfo(PathUtils.Combine(CliUtils.PhysicalApplicationPath, "Bin", "SiteServer.CMS.dll")).ProductVersion; await Console.Out.WriteLineAsync($"SitServer CMS Version: {cmsVersion}"); } catch { // ignored } await Console.Out.WriteLineAsync($"数据库类型: {WebConfigUtils.DatabaseType.Value}"); await Console.Out.WriteLineAsync($"连接字符串: {WebConfigUtils.ConnectionString}"); await Console.Out.WriteLineAsync($"连接字符串(加密): {TranslateUtils.EncryptStringBySecretKey(WebConfigUtils.ConnectionString, WebConfigUtils.SecretKey)}"); } }
public static string RemoveProductionWorkPlan(string KALIP_NO) { string errMsg = ""; var ret = 0; var SYSTEM_CODE = Global.SYSTEM_CODE; pasabahce.PASABAHCE_WEB_SERVICE ws = new pasabahce.PASABAHCE_WEB_SERVICE(); #region checkWebConfig var webConfig = new WebConfig(); ret = WebConfigUtils.readWebConfig(ref webConfig, ref errMsg); if (ret < 0) { return(ret.ToString() + " " + errMsg); } if (WebConfigUtils.checkWebConfig(HttpContext.Current.Response, HttpContext.Current.Session, ref webConfig) == false) { return(""); } #endregion #region checkIfLoggedIn errMsg = ""; var USER_INFO = new CLS_USER_INFO(); ret = LoginUtils.checkIfLoggedIn(ws, webConfig, HttpContext.Current.Session, HttpContext.Current.Response, ref USER_INFO, ref errMsg); if (ret < 0) { return(ret.ToString() + " " + errMsg); } if (USER_INFO.USER_ID == "") { return(ret.ToString() + " " + errMsg); } #endregion pasabahce.CLS_ZPP_URT_PLAN ZPP_URT_PLAN = new pasabahce.CLS_ZPP_URT_PLAN(); ws.init_CLS_ZPP_URT_PLAN(ref ZPP_URT_PLAN); ZPP_URT_PLAN.KALIP_NO = KALIP_NO; if (ret < 0) { return("-1"); } return("0"); }
public IHttpActionResult Main() { var request = new AuthenticatedRequest(); var isDownload = TranslateUtils.ToBool(CacheDbUtils.GetValueAndRemove(PackageUtils.CacheKeySsCmsIsDownload)); if (!isDownload) { return(Unauthorized()); } var version = request.GetPostString("version"); var idWithVersion = $"{PackageUtils.PackageIdSsCms}.{version}"; var packagePath = PathUtils.GetPackagesPath(idWithVersion); var packageWebConfigPath = PathUtils.Combine(packagePath, WebConfigUtils.WebConfigFileName); if (!FileUtils.IsFileExists(packageWebConfigPath)) { return(BadRequest($"升级包 {WebConfigUtils.WebConfigFileName} 文件不存在")); } WebConfigUtils.UpdateWebConfig(packageWebConfigPath, WebConfigUtils.IsProtectData, WebConfigUtils.DatabaseType, WebConfigUtils.ConnectionString, WebConfigUtils.AdminDirectory, WebConfigUtils.HomeDirectory, WebConfigUtils.SecretKey, WebConfigUtils.IsNightlyUpdate); DirectoryUtils.Copy(PathUtils.Combine(packagePath, DirectoryUtils.SiteFiles.DirectoryName), PathUtils.GetSiteFilesPath(string.Empty), true); DirectoryUtils.Copy(PathUtils.Combine(packagePath, DirectoryUtils.SiteServer.DirectoryName), PathUtils.GetAdminDirectoryPath(string.Empty), true); DirectoryUtils.Copy(PathUtils.Combine(packagePath, DirectoryUtils.Home.DirectoryName), PathUtils.GetHomeDirectoryPath(string.Empty), true); DirectoryUtils.Copy(PathUtils.Combine(packagePath, DirectoryUtils.Bin.DirectoryName), PathUtils.GetBinDirectoryPath(string.Empty), true); var isCopyFiles = FileUtils.CopyFile(packageWebConfigPath, PathUtils.Combine(WebConfigUtils.PhysicalApplicationPath, WebConfigUtils.WebConfigFileName), true); //SystemManager.SyncDatabase(); return(Ok(new { isCopyFiles })); }
private bool UpdateWebConfig(out string errorMessage) { errorMessage = string.Empty; var returnValue = false; try { var isProtectData = TranslateUtils.ToBool(DdlIsProtectData.SelectedValue); var databaseType = DatabaseTypeUtils.GetEnumType(DdlSqlDatabaseType.SelectedValue); var connectionString = GetConnectionString(true); WebConfigUtils.UpdateWebConfig(isProtectData, databaseType, connectionString, "siteserver", "vEnfkn16t8aeaZKG3a4Gl9UUlzf4vgqU9xwh8ZV5", false); returnValue = true; } catch (Exception e) { errorMessage = e.Message; } return(returnValue); }
private bool UpdateWebConfig(out string errorMessage) { errorMessage = string.Empty; var returnValue = false; try { var isProtectData = TranslateUtils.ToBool(DdlIsProtectData.SelectedValue); var isMySql = StringUtils.EqualsIgnoreCase(DdlSqlDatabaseType.SelectedValue, "MySql"); var connectionString = GetConnectionString(true); WebConfigUtils.UpdateWebConfig(isProtectData, isMySql, connectionString); returnValue = true; } catch (Exception e) { errorMessage = e.Message; } return(returnValue); }
protected override void OnStart(string[] args) { try { //配置的时间间隔,单位秒 var interval = ConfigHelper.GetConfigInt("Interval"); interval = interval == 0 ? 10 : interval; //读取配置项并设置连接字符串 var applicationPhysicalPath = AppDomain.CurrentDomain.BaseDirectory; WebConfigUtils.Load(applicationPhysicalPath, PathUtils.Combine(applicationPhysicalPath, "SiteServer.Service.exe.config")); timer1 = new System.Timers.Timer { Interval = interval * 1000 }; //设置计时器事件间隔执行时间 timer1.Elapsed += timer1_Elapsed; timer1.Enabled = true; } catch (Exception e) { WriteLog(e.Message); } }
public static void LoadPlugins(string applicationPhysicalPath) { WebConfigUtils.Load(applicationPhysicalPath); _pluginInfoListRunnable = PluginInfoListRunnable; }
public async Task Execute(IJobContext context) { if (!CliUtils.ParseArgs(_options, context.Args)) { return; } if (_isHelp) { PrintUsage(); return; } var directory = _directory; if (string.IsNullOrEmpty(directory)) { directory = $"backup/{DateTime.Now:yyyy-MM-dd}"; } var treeInfo = new TreeInfo(directory); DirectoryUtils.CreateDirectoryIfNotExists(treeInfo.DirectoryPath); var backupWebConfigPath = CliUtils.GetWebConfigPath(_from); if (!FileUtils.IsFileExists(backupWebConfigPath)) { await CliUtils.PrintErrorAsync($"系统配置文件不存在:{backupWebConfigPath}!"); return; } WebConfigUtils.Load(CliUtils.PhysicalApplicationPath, backupWebConfigPath); if (string.IsNullOrEmpty(WebConfigUtils.ConnectionString)) { await CliUtils.PrintErrorAsync($"{backupWebConfigPath} 中数据库连接字符串 connectionString 未设置"); return; } await Console.Out.WriteLineAsync($"备份数据库类型: {WebConfigUtils.DatabaseType.Value}"); await Console.Out.WriteLineAsync($"备份连接字符串: {WebConfigUtils.ConnectionString}"); await Console.Out.WriteLineAsync($"备份文件夹: {treeInfo.DirectoryPath}"); if (!DataProvider.DatabaseDao.IsConnectionStringWork(WebConfigUtils.DatabaseType, WebConfigUtils.ConnectionString)) { await CliUtils.PrintErrorAsync($"系统无法连接到 {backupWebConfigPath} 中设置的数据库"); return; } if (_excludes == null) { _excludes = new List <string>(); } _excludes.Add("bairong_Log"); _excludes.Add("bairong_ErrorLog"); _excludes.Add("siteserver_ErrorLog"); _excludes.Add("siteserver_Log"); _excludes.Add("siteserver_Tracking"); var errorLogFilePath = CliUtils.CreateErrorLogFile(CommandName); await BackupJob.Backup(_includes, _excludes, _maxRows, treeInfo); var restoreWebConfigPath = CliUtils.GetWebConfigPath(_to); if (!FileUtils.IsFileExists(restoreWebConfigPath)) { await CliUtils.PrintErrorAsync($"系统配置文件不存在:{restoreWebConfigPath}!"); return; } WebConfigUtils.Load(CliUtils.PhysicalApplicationPath, restoreWebConfigPath); if (string.IsNullOrEmpty(WebConfigUtils.ConnectionString)) { await CliUtils.PrintErrorAsync($"{restoreWebConfigPath} 中数据库连接字符串 connectionString 未设置"); return; } await Console.Out.WriteLineAsync($"恢复数据库类型: {WebConfigUtils.DatabaseType.Value}"); await Console.Out.WriteLineAsync($"恢复连接字符串: {WebConfigUtils.ConnectionString}"); if (!DataProvider.DatabaseDao.IsConnectionStringWork(WebConfigUtils.DatabaseType, WebConfigUtils.ConnectionString)) { await CliUtils.PrintErrorAsync($"系统无法连接到 {restoreWebConfigPath} 中设置的数据库"); return; } await RestoreJob.Restore(_includes, _excludes, true, treeInfo.DirectoryPath, treeInfo, errorLogFilePath); await CliUtils.PrintRowLineAsync(); await Console.Out.WriteLineAsync("恭喜,成功同步数据!"); }
public static async Task Execute(IJobContext context) { if (!CliUtils.ParseArgs(Options, context.Args)) { return; } if (_isHelp) { PrintUsage(); return; } if (string.IsNullOrEmpty(_directory)) { _directory = $"backup/{DateTime.Now:yyyy-MM-dd}"; } var treeInfo = new TreeInfo(_directory); DirectoryUtils.CreateDirectoryIfNotExists(treeInfo.DirectoryPath); var webConfigPath = CliUtils.GetWebConfigPath(_configFile); if (!FileUtils.IsFileExists(webConfigPath)) { await CliUtils.PrintErrorAsync($"系统配置文件不存在:{webConfigPath}!"); return; } WebConfigUtils.Load(CliUtils.PhysicalApplicationPath, webConfigPath); if (string.IsNullOrEmpty(WebConfigUtils.ConnectionString)) { await CliUtils.PrintErrorAsync($"{webConfigPath} 中数据库连接字符串 connectionString 未设置"); return; } await Console.Out.WriteLineAsync($"数据库类型: {WebConfigUtils.DatabaseType.Value}"); await Console.Out.WriteLineAsync($"连接字符串: {WebConfigUtils.ConnectionString}"); await Console.Out.WriteLineAsync($"备份文件夹: {treeInfo.DirectoryPath}"); if (!DataProvider.DatabaseDao.IsConnectionStringWork(WebConfigUtils.DatabaseType, WebConfigUtils.ConnectionString)) { await CliUtils.PrintErrorAsync($"系统无法连接到 {webConfigPath} 中设置的数据库"); return; } if (_excludes == null) { _excludes = new List <string>(); } _excludes.Add("bairong_Log"); _excludes.Add("bairong_ErrorLog"); _excludes.Add("siteserver_ErrorLog"); _excludes.Add("siteserver_Log"); _excludes.Add("siteserver_Tracking"); var allTableNames = DataProvider.DatabaseDao.GetTableNameList(); var tableNames = new List <string>(); foreach (var tableName in allTableNames) { if (_includes != null && !StringUtils.ContainsIgnoreCase(_includes, tableName)) { continue; } if (StringUtils.ContainsIgnoreCase(_excludes, tableName)) { continue; } if (StringUtils.ContainsIgnoreCase(tableNames, tableName)) { continue; } tableNames.Add(tableName); } await FileUtils.WriteTextAsync(treeInfo.TablesFilePath, Encoding.UTF8, TranslateUtils.JsonSerialize(tableNames)); await CliUtils.PrintRowLineAsync(); await CliUtils.PrintRowAsync("备份表名称", "总条数"); await CliUtils.PrintRowLineAsync(); foreach (var tableName in tableNames) { var tableInfo = new TableInfo { Columns = DataProvider.DatabaseDao.GetTableColumnInfoList(WebConfigUtils.ConnectionString, tableName), TotalCount = DataProvider.DatabaseDao.GetCount(tableName), RowFiles = new List <string>() }; if (_maxRows > 0 && tableInfo.TotalCount > _maxRows) { tableInfo.TotalCount = _maxRows; } await CliUtils.PrintRowAsync(tableName, tableInfo.TotalCount.ToString("#,0")); var identityColumnName = DataProvider.DatabaseDao.AddIdentityColumnIdIfNotExists(tableName, tableInfo.Columns); if (tableInfo.TotalCount > 0) { var current = 1; if (tableInfo.TotalCount > CliUtils.PageSize) { var pageCount = (int)Math.Ceiling((double)tableInfo.TotalCount / CliUtils.PageSize); using (var progress = new ProgressBar()) { for (; current <= pageCount; current++) { progress.Report((double)(current - 1) / pageCount); var fileName = $"{current}.json"; tableInfo.RowFiles.Add(fileName); var offset = (current - 1) * CliUtils.PageSize; var limit = tableInfo.TotalCount - offset < CliUtils.PageSize ? tableInfo.TotalCount - offset : CliUtils.PageSize; var rows = DataProvider.DatabaseDao.GetPageObjects(tableName, identityColumnName, offset, limit); await FileUtils.WriteTextAsync(treeInfo.GetTableContentFilePath(tableName, fileName), Encoding.UTF8, TranslateUtils.JsonSerialize(rows)); } } } else { var fileName = $"{current}.json"; tableInfo.RowFiles.Add(fileName); var rows = DataProvider.DatabaseDao.GetObjects(tableName); await FileUtils.WriteTextAsync(treeInfo.GetTableContentFilePath(tableName, fileName), Encoding.UTF8, TranslateUtils.JsonSerialize(rows)); } } await FileUtils.WriteTextAsync(treeInfo.GetTableMetadataFilePath(tableName), Encoding.UTF8, TranslateUtils.JsonSerialize(tableInfo)); } await CliUtils.PrintRowLineAsync(); await Console.Out.WriteLineAsync($"恭喜,成功备份数据库至文件夹:{treeInfo.DirectoryPath}!"); }
public static void Execute(string[] args) { if (!CliUtils.ParseArgs(Options, args)) { return; } if (_isHelp) { PrintUsage(); return; } if (string.IsNullOrEmpty(_directory)) { _directory = $"backup/{DateTime.Now:yyyy-MM-dd}"; } if (string.IsNullOrEmpty(_webConfigFileName)) { _webConfigFileName = "web.config"; } var treeInfo = new TreeInfo(_directory); DirectoryUtils.CreateDirectoryIfNotExists(treeInfo.DirectoryPath); WebConfigUtils.Load(CliUtils.PhysicalApplicationPath, _webConfigFileName); Console.WriteLine($"Database Type: {WebConfigUtils.DatabaseType.Value}"); Console.WriteLine($"Connection String: {WebConfigUtils.ConnectionString}"); Console.WriteLine($"Backup Directory: {treeInfo.DirectoryPath}"); var tableNames = DataProvider.DatabaseDao.GetTableNameList(); FileUtils.WriteText(treeInfo.TablesFilePath, Encoding.UTF8, TranslateUtils.JsonSerialize(tableNames)); CliUtils.PrintLine(); CliUtils.PrintRow("Backup Table Name", "Total Count"); CliUtils.PrintLine(); foreach (var tableName in tableNames) { var tableInfo = new TableInfo { Columns = DataProvider.DatabaseDao.GetTableColumnInfoListLowercase(WebConfigUtils.ConnectionString, tableName), TotalCount = DataProvider.DatabaseDao.GetCount(tableName), RowFiles = new List <string>() }; CliUtils.PrintRow(tableName, tableInfo.TotalCount.ToString("#,0")); var identityColumnName = DataProvider.DatabaseDao.AddIdentityColumnIdIfNotExists(tableName, tableInfo.Columns); if (tableInfo.TotalCount > 0) { var current = 1; if (tableInfo.TotalCount > CliUtils.PageSize) { var pageCount = (int)Math.Ceiling((double)tableInfo.TotalCount / CliUtils.PageSize); for (; current <= pageCount; current++) { CliUtils.PrintProgressBar(current - 1, pageCount); var fileName = $"{current}.json"; tableInfo.RowFiles.Add(fileName); var offset = (current - 1) * CliUtils.PageSize; var limit = CliUtils.PageSize; var rows = DataProvider.DatabaseDao.GetPageObjects(tableName, identityColumnName, offset, limit); FileUtils.WriteText(treeInfo.GetTableContentFilePath(tableName, fileName), Encoding.UTF8, TranslateUtils.JsonSerialize(rows)); } CliUtils.PrintProgressBarEnd(); } else { var fileName = $"{current}.json"; tableInfo.RowFiles.Add(fileName); var rows = DataProvider.DatabaseDao.GetObjects(tableName); FileUtils.WriteText(treeInfo.GetTableContentFilePath(tableName, fileName), Encoding.UTF8, TranslateUtils.JsonSerialize(rows)); } } FileUtils.WriteText(treeInfo.GetTableMetadataFilePath(tableName), Encoding.UTF8, TranslateUtils.JsonSerialize(tableInfo)); } CliUtils.PrintLine(); Console.WriteLine("Well done! Thanks for Using SiteServer Cli Tool"); }
public async Task Execute(IJobContext context) { if (!CliUtils.ParseArgs(_options, context.Args)) { return; } if (_isHelp) { PrintUsage(); return; } if (string.IsNullOrEmpty(_directory)) { await CliUtils.PrintErrorAsync("需要指定恢复数据的文件夹名称:directory"); return; } var treeInfo = new TreeInfo(_directory); if (!DirectoryUtils.IsDirectoryExists(treeInfo.DirectoryPath)) { await CliUtils.PrintErrorAsync($"恢复数据的文件夹 {treeInfo.DirectoryPath} 不存在"); return; } var tablesFilePath = treeInfo.TablesFilePath; if (!FileUtils.IsFileExists(tablesFilePath)) { await CliUtils.PrintErrorAsync($"恢复文件 {treeInfo.TablesFilePath} 不存在"); return; } var webConfigPath = CliUtils.GetWebConfigPath(_configFile); if (!FileUtils.IsFileExists(webConfigPath)) { await CliUtils.PrintErrorAsync($"系统配置文件不存在:{webConfigPath}!"); return; } WebConfigUtils.Load(CliUtils.PhysicalApplicationPath, webConfigPath); if (string.IsNullOrEmpty(WebConfigUtils.ConnectionString)) { await CliUtils.PrintErrorAsync($"{webConfigPath} 中数据库连接字符串 connectionString 未设置"); return; } await Console.Out.WriteLineAsync($"数据库类型: {WebConfigUtils.DatabaseType.Value}"); await Console.Out.WriteLineAsync($"连接字符串: {WebConfigUtils.ConnectionString}"); await Console.Out.WriteLineAsync($"恢复文件夹: {treeInfo.DirectoryPath}"); if (!DataProvider.DatabaseDao.IsConnectionStringWork(WebConfigUtils.DatabaseType, WebConfigUtils.ConnectionString)) { await CliUtils.PrintErrorAsync($"系统无法连接到 {webConfigPath} 中设置的数据库"); return; } if (!_dataOnly) { if (!SystemManager.IsNeedInstall()) { await CliUtils.PrintErrorAsync("数据无法在已安装系统的数据库中恢复,命令执行失败"); return; } // 恢复前先创建表,确保系统在恢复的数据库中能够使用 SystemManager.CreateSiteServerTables(); } await CliUtils.PrintRowLineAsync(); await CliUtils.PrintRowAsync("恢复表名称", "总条数"); await CliUtils.PrintRowLineAsync(); var errorLogFilePath = CliUtils.CreateErrorLogFile(CommandName); await Restore(_includes, _excludes, _dataOnly, tablesFilePath, treeInfo, errorLogFilePath); await Console.Out.WriteLineAsync($"恭喜,成功从文件夹:{treeInfo.DirectoryPath} 恢复数据!"); }
public static async Task Execute(IJobContext context) { if (!CliUtils.ParseArgs(Options, context.Args)) { return; } if (_isHelp) { PrintUsage(); return; } if (string.IsNullOrEmpty(_directory)) { await CliUtils.PrintErrorAsync("需要指定恢复数据的文件夹名称:directory"); return; } var treeInfo = new TreeInfo(_directory); if (!DirectoryUtils.IsDirectoryExists(treeInfo.DirectoryPath)) { await CliUtils.PrintErrorAsync($"恢复数据的文件夹 {treeInfo.DirectoryPath} 不存在"); return; } var tablesFilePath = treeInfo.TablesFilePath; if (!FileUtils.IsFileExists(tablesFilePath)) { await CliUtils.PrintErrorAsync($"恢复文件 {treeInfo.TablesFilePath} 不存在"); return; } var webConfigPath = PathUtils.Combine(CliUtils.PhysicalApplicationPath, "web.config"); if (!FileUtils.IsFileExists(webConfigPath)) { await CliUtils.PrintErrorAsync($"系统配置文件不存在:{webConfigPath}!"); return; } if (string.IsNullOrEmpty(WebConfigUtils.ConnectionString)) { await CliUtils.PrintErrorAsync("web.config 中数据库连接字符串 connectionString 未设置"); return; } WebConfigUtils.Load(CliUtils.PhysicalApplicationPath, "web.config"); await Console.Out.WriteLineAsync($"数据库类型: {WebConfigUtils.DatabaseType.Value}"); await Console.Out.WriteLineAsync($"连接字符串: {WebConfigUtils.ConnectionString}"); await Console.Out.WriteLineAsync($"恢复文件夹: {treeInfo.DirectoryPath}"); if (!DataProvider.DatabaseDao.IsConnectionStringWork(WebConfigUtils.DatabaseType, WebConfigUtils.ConnectionString)) { await CliUtils.PrintErrorAsync("系统无法连接到 web.config 中设置的数据库"); return; } if (!SystemManager.IsNeedInstall()) { await CliUtils.PrintErrorAsync("数据无法在已安装系统的数据库中恢复,命令执行失败"); return; } // 恢复前先创建表,确保系统在恢复的数据库中能够使用 SystemManager.CreateSiteServerTables(); var tableNames = TranslateUtils.JsonDeserialize <List <string> >(await FileUtils.ReadTextAsync(tablesFilePath, Encoding.UTF8)); await CliUtils.PrintRowLineAsync(); await CliUtils.PrintRowAsync("恢复表名称", "总条数"); await CliUtils.PrintRowLineAsync(); var errorLogFilePath = CliUtils.CreateErrorLogFile(CommandName); foreach (var tableName in tableNames) { var logs = new List <TextLogInfo>(); if (_includes != null) { if (!StringUtils.ContainsIgnoreCase(_includes, tableName)) { continue; } } if (_excludes != null) { if (StringUtils.ContainsIgnoreCase(_excludes, tableName)) { continue; } } var metadataFilePath = treeInfo.GetTableMetadataFilePath(tableName); if (!FileUtils.IsFileExists(metadataFilePath)) { continue; } var tableInfo = TranslateUtils.JsonDeserialize <TableInfo>(await FileUtils.ReadTextAsync(metadataFilePath, Encoding.UTF8)); await CliUtils.PrintRowAsync(tableName, tableInfo.TotalCount.ToString("#,0")); if (!DataProvider.DatabaseDao.IsTableExists(tableName)) { if (!DataProvider.DatabaseDao.CreateSystemTable(tableName, tableInfo.Columns, out var ex, out var sqlString)) { logs.Add(new TextLogInfo { DateTime = DateTime.Now, Detail = $"创建表 {tableName}: {sqlString}", Exception = ex }); continue; } } else { DataProvider.DatabaseDao.AlterSystemTable(tableName, tableInfo.Columns); } using (var progress = new ProgressBar()) { for (var i = 0; i < tableInfo.RowFiles.Count; i++) { progress.Report((double)i / tableInfo.RowFiles.Count); var fileName = tableInfo.RowFiles[i]; var objects = TranslateUtils.JsonDeserialize <List <JObject> >( await FileUtils.ReadTextAsync(treeInfo.GetTableContentFilePath(tableName, fileName), Encoding.UTF8)); try { DataProvider.DatabaseDao.InsertMultiple(tableName, objects, tableInfo.Columns); } catch (Exception ex) { logs.Add(new TextLogInfo { DateTime = DateTime.Now, Detail = $"插入表 {tableName}, 文件名 {fileName}", Exception = ex }); } } } await CliUtils.AppendErrorLogsAsync(errorLogFilePath, logs); } await CliUtils.PrintRowLineAsync(); // 恢复后同步表,确保内容辅助表字段与系统一致 SystemManager.SyncContentTables(); SystemManager.UpdateConfigVersion(); await Console.Out.WriteLineAsync($"恭喜,成功从文件夹:{treeInfo.DirectoryPath} 恢复数据!"); }
public static void Execute(string[] args) { if (!CliUtils.ParseArgs(Options, args)) { return; } if (_isHelp) { PrintUsage(); return; } if (string.IsNullOrEmpty(_directory)) { _directory = $"backup/{DateTime.Now:yyyy-MM-dd}"; } if (string.IsNullOrEmpty(_webConfigFileName)) { _webConfigFileName = "web.config"; } var treeInfo = new TreeInfo(_directory); if (!DirectoryUtils.IsDirectoryExists(treeInfo.DirectoryPath)) { CliUtils.PrintError($"Error, Directory {treeInfo.DirectoryPath} Not Exists"); return; } var tablesFilePath = treeInfo.TablesFilePath; if (!FileUtils.IsFileExists(tablesFilePath)) { CliUtils.PrintError($"Error, File {treeInfo.TablesFilePath} Not Exists"); return; } WebConfigUtils.Load(CliUtils.PhysicalApplicationPath, _webConfigFileName); Console.WriteLine($"Database Type: {WebConfigUtils.DatabaseType.Value}"); Console.WriteLine($"Connection String: {WebConfigUtils.ConnectionString}"); Console.WriteLine($"Restore Directory: {treeInfo.DirectoryPath}"); if (string.IsNullOrEmpty(WebConfigUtils.ConnectionString)) { CliUtils.PrintError("Error, Connection String Is Empty"); return; } List <string> databaseNameList; string errorMessage; var isConnectValid = DataProvider.DatabaseDao.ConnectToServer(WebConfigUtils.DatabaseType, WebConfigUtils.ConnectionString, out databaseNameList, out errorMessage); if (!isConnectValid) { CliUtils.PrintError("Error, Connection String Not Correct"); return; } var tableNames = TranslateUtils.JsonDeserialize <List <string> >(FileUtils.ReadText(tablesFilePath, Encoding.UTF8)); CliUtils.PrintLine(); CliUtils.PrintRow("Import Table Name", "Total Count"); CliUtils.PrintLine(); var logs = new List <TextLogInfo>(); foreach (var tableName in tableNames) { var metadataFilePath = treeInfo.GetTableMetadataFilePath(tableName); if (!FileUtils.IsFileExists(metadataFilePath)) { continue; } var tableInfo = TranslateUtils.JsonDeserialize <TableInfo>(FileUtils.ReadText(metadataFilePath, Encoding.UTF8)); CliUtils.PrintRow(tableName, tableInfo.TotalCount.ToString("#,0")); if (!DataProvider.DatabaseDao.IsTableExists(tableName)) { DataProvider.DatabaseDao.CreateSystemTable(tableName, tableInfo.Columns); } else { DataProvider.DatabaseDao.AlterSystemTable(tableName, tableInfo.Columns); } using (var progress = new ProgressBar()) { for (var i = 0; i < tableInfo.RowFiles.Count; i++) { progress.Report((double)i / tableInfo.RowFiles.Count); var fileName = tableInfo.RowFiles[i]; var objects = TranslateUtils.JsonDeserialize <List <JObject> >(FileUtils.ReadText(treeInfo.GetTableContentFilePath(tableName, fileName), Encoding.UTF8)); try { DataProvider.DatabaseDao.InsertMultiple(tableName, objects, tableInfo.Columns); } catch (Exception ex) { logs.Add(new TextLogInfo { DateTime = DateTime.Now, Detail = $"tableName {tableName}, fileName {fileName}", Exception = ex }); } } } } CliUtils.PrintLine(); SystemManager.SyncDatabase(); CliUtils.LogErrors(CommandName, logs); Console.WriteLine("Well done! Thanks for Using SiteServer Cli Tool"); }
public static string GetProductionWorkPlanList(string filt1, string filt2, string filt3) { var errMsg = ""; var ret = 0; var systemCode = Global.SYSTEM_CODE; var ws = new PASABAHCE_WEB_SERVICE(); #region checkWebConfig var webConfig = new WebConfig(); ret = WebConfigUtils.readWebConfig(ref webConfig, ref errMsg); if (ret < 0) { MessageUtils.sendInformationMessage(HttpContext.Current.Session, HttpContext.Current.Response, errMsg); return(""); } if (WebConfigUtils.checkWebConfig(HttpContext.Current.Response, HttpContext.Current.Session, ref webConfig) == false) { MessageUtils.sendInformationMessage(HttpContext.Current.Session, HttpContext.Current.Response, errMsg); return(""); } #endregion #region checkIfLoggedIn errMsg = ""; var userInfo = new CLS_USER_INFO(); ret = LoginUtils.checkIfLoggedIn(ws, webConfig, HttpContext.Current.Session, HttpContext.Current.Response, ref userInfo, ref errMsg); if (ret < 0) { MessageUtils.sendInformationMessage(HttpContext.Current.Session, HttpContext.Current.Response, errMsg); return(""); } if (userInfo.USER_ID == "") { HttpContext.Current.Response.Redirect("~/Account/LoginForm.aspx", true); return(""); } #endregion pasabahce.CLS_ZPP_URT_PLAN_FILTER prLineFilter = new pasabahce.CLS_ZPP_URT_PLAN_FILTER(); ws.init_CLS_ZPP_URT_PLAN_FILTER(ref prLineFilter); if (filt1 != "") { prLineFilter.KALIP_NO = filt1; } if (filt2 != "") { prLineFilter.URETIM_TIPI = Int32.Parse(filt2); } if (filt3 != "") { prLineFilter.URET_BAS_TAR = filt3; } pasabahce.CLS_ZPP_URT_PLAN_SORT prLineSort = new pasabahce.CLS_ZPP_URT_PLAN_SORT(); ws.init_CLS_ZPP_URT_PLAN_SORT(ref prLineSort); CLS_ZPP_URT_PLAN[] prHatList = null; userInfo.MANDT = "400"; ret = ws.GET_ZPP_URT_PLAN_LIST(systemCode, userInfo, Global.Max_Row_Count, prLineFilter, prLineSort, ref prHatList, ref errMsg); if (ret < 0) { MessageUtils.sendInformationMessage(HttpContext.Current.Session, HttpContext.Current.Response, errMsg); return(""); } if (filt1 != "") { var temp = prHatList.Where(c => c.KALIP_NO == filt1); prHatList = temp.ToArray(); } var json_output = JsonConvert.SerializeObject(prHatList); var data = new KendoDataModel(); data.Data = json_output; data.Total = prHatList.Count(); var jsonData = JsonConvert.SerializeObject(data); return(jsonData); }
public static async Task Execute(IJobContext context) { if (!CliUtils.ParseArgs(Options, context.Args)) { return; } if (_isHelp) { PrintUsage(); return; } try { if (string.IsNullOrEmpty(_userName)) { await CliUtils.PrintErrorAsync("未设置参数管理员用户名:{userName} !"); return; } if (string.IsNullOrEmpty(_password)) { await CliUtils.PrintErrorAsync("未设置参数管理员密码:{password} !"); return; } if (_password.Length < 6) { await CliUtils.PrintErrorAsync("管理员密码必须大于6位 !"); return; } if (!EUserPasswordRestrictionUtils.IsValid(_password, EUserPasswordRestrictionUtils.GetValue(EUserPasswordRestriction.LetterAndDigit))) { await CliUtils.PrintErrorAsync($"管理员密码不符合规则,请包含{EUserPasswordRestrictionUtils.GetText(EUserPasswordRestriction.LetterAndDigit)}"); return; } var webConfigPath = PathUtils.Combine(CliUtils.PhysicalApplicationPath, "web.config"); if (!FileUtils.IsFileExists(webConfigPath)) { await CliUtils.PrintErrorAsync($"系统配置文件不存在:{webConfigPath}!"); return; } if (string.IsNullOrEmpty(WebConfigUtils.ConnectionString)) { await CliUtils.PrintErrorAsync("web.config 中数据库连接字符串 connectionString 未设置"); return; } WebConfigUtils.Load(CliUtils.PhysicalApplicationPath, "web.config"); await Console.Out.WriteLineAsync($"数据库类型: {WebConfigUtils.DatabaseType.Value}"); await Console.Out.WriteLineAsync($"连接字符串: {WebConfigUtils.ConnectionString}"); await Console.Out.WriteLineAsync($"系统文件夹: {CliUtils.PhysicalApplicationPath}"); if (!DataProvider.DatabaseDao.IsConnectionStringWork(WebConfigUtils.DatabaseType, WebConfigUtils.ConnectionString)) { await CliUtils.PrintErrorAsync("系统无法连接到 web.config 中设置的数据库"); return; } if (!SystemManager.IsNeedInstall()) { await CliUtils.PrintErrorAsync("系统已安装在 web.config 指定的数据库中,命令执行失败"); return; } WebConfigUtils.UpdateWebConfig(WebConfigUtils.IsProtectData, WebConfigUtils.DatabaseType, WebConfigUtils.ConnectionString, WebConfigUtils.AdminDirectory, StringUtils.GetShortGuid(), false); DataProvider.Reset(); SystemManager.InstallDatabase(_userName, _password); } catch (Exception e) { await CliUtils.PrintErrorAsync(e.Message); return; } await Console.Out.WriteLineAsync("恭喜,系统安装成功!"); }
protected void Page_Load(object sender, EventArgs e) { CacheUtils.sendNoCache(Response, Session); var errMsg = ""; var ret = 0; #region checkWebConfig var webConfig = new WebConfig(); ret = WebConfigUtils.readWebConfig(ref webConfig, ref errMsg); if (ret < 0) { MessageUtils.sendInformationMessage(Session, Response, errMsg); return; } if (WebConfigUtils.checkWebConfig(Response, Session, ref webConfig) == false) { MessageUtils.sendInformationMessage(Session, Response, errMsg); return; } #endregion var systemCode = Global.SYSTEM_CODE; var ws = new PASABAHCE_WEB_SERVICE(); #region checkIfLoggedIn errMsg = ""; var userInfo = new CLS_USER_INFO(); ret = LoginUtils.checkIfLoggedIn(ws, webConfig, Session, Response, ref userInfo, ref errMsg); if (ret < 0) { MessageUtils.sendInformationMessage(Session, Response, errMsg); return; } if (userInfo.USER_ID == "") { Response.Redirect("~/Account/LoginForm.aspx", true); return; } int PAGE_ID; string PAGE_NAME = "ProductionWorkPlanList"; pasabahce.CLS_PAGES[] PAGES_LIST = null; ret = ws.get_PAGE_ID(Global.SYSTEM_CODE, PAGE_NAME, ref PAGES_LIST, ref errMsg); PAGE_ID = PAGES_LIST[0].PAGE_ID; pasabahce.CLS_PERMISSION[] PERMISSION_LIST = null; ret = ws.get_PAGE_CALL(Global.SYSTEM_CODE, PAGE_ID, userInfo.USER_TYPE, ref PERMISSION_LIST, ref errMsg); if (ret < 0) { MessageUtils.sendInformationMessage(Session, Response, errMsg); return; } if (PERMISSION_LIST[0].READ_PERMISSION == "N") { Response.Redirect("/Permission.aspx", true); return; } #endregion pasabahce.CLS_LANG_TEXT[] TEXT = null; ret = ws.getLangText(webConfig.SQLServerConnectionString, userInfo, userInfo.LANG, ref TEXT, ref errMsg); StringBuilder JS_LANG_TEXTS = new StringBuilder(); for (int i = 0; i < TEXT.Length; i++) { JS_LANG_TEXTS.Append("LANG_TEXT['" + TEXT[i].LANG_TEXT_ID + "'] = \"" + TEXT[i].LANG_TEXT_CONTENT + "\";" + (char)13 + (char)10); } if (ret < 0) { Session["information_msg"] = errMsg; Response.Redirect("Information.aspx"); return; } #region taslak files errMsg = ""; var html_taslak = ""; ret = FileUtils.getFile(webConfig.WebRootPath, "Pages/Layout/Layout.html", ref html_taslak, ref errMsg); if (ret < 0) { MessageUtils.sendInformationMessage(Session, Response, errMsg); return; } errMsg = ""; var html_taslak_menu_bar = ""; ret = FileUtils.getFile(webConfig.WebRootPath, "Pages/Layout/MenuBar.html", ref html_taslak_menu_bar, ref errMsg); if (ret < 0) { MessageUtils.sendInformationMessage(Session, Response, errMsg); return; } errMsg = ""; var html_taslak_middle_area = ""; ret = FileUtils.getFile(webConfig.WebRootPath, "Pages/Layout/FormLayout.html", ref html_taslak_middle_area, ref errMsg); if (ret < 0) { MessageUtils.sendInformationMessage(Session, Response, errMsg); return; } errMsg = ""; var html_taslak_content = ""; ret = FileUtils.getFile(webConfig.WebRootPath, "Pages/Views/ProductionWorkPlan/ProductionWorkPlanList.html", ref html_taslak_content, ref errMsg); if (ret < 0) { MessageUtils.sendInformationMessage(Session, Response, errMsg); return; } #endregion html_taslak = html_taslak.Replace("<!--[!USER_NAME!]-->", userInfo.USER_NAME + " "); PageContentHelper.prepareMenuBar(userInfo, ref html_taslak_menu_bar); html_taslak = html_taslak.Replace("<!--[!MENU_BAR!]-->", html_taslak_menu_bar); html_taslak = html_taslak.Replace("<!--[!JS_LANG_TEXTS!]-->", JS_LANG_TEXTS.ToString()); html_taslak_middle_area = html_taslak_middle_area.Replace("<!--[!PAGE_CONTENT!]-->", html_taslak_content); html_taslak = html_taslak.Replace("<!--[!MIDDLE_AREA!]-->", html_taslak_middle_area); html_taslak = html_taslak.Replace("<!--[!header_text!]-->", "Üretim İş Planı"); sendHtml(userInfo, webConfig, userInfo.LANG, html_taslak); }
public static bool UpdatePackage(string idWithVersion, PackageType packageType, out string errorMessage) { try { var packagePath = PathUtils.GetPackagesPath(idWithVersion); string nuspecPath; string dllDirectoryPath; var metadata = GetPackageMetadataFromPackages(idWithVersion, out nuspecPath, out dllDirectoryPath, out errorMessage); if (metadata == null) { return(false); } if (packageType == PackageType.SsCms) { var packageWebConfigPath = PathUtils.Combine(packagePath, WebConfigUtils.WebConfigFileName); if (!FileUtils.IsFileExists(packageWebConfigPath)) { errorMessage = $"升级包 {WebConfigUtils.WebConfigFileName} 文件不存在"; return(false); } WebConfigUtils.UpdateWebConfig(packageWebConfigPath, WebConfigUtils.IsProtectData, WebConfigUtils.DatabaseType, WebConfigUtils.ConnectionString, WebConfigUtils.ApiPrefix, WebConfigUtils.AdminDirectory, WebConfigUtils.HomeDirectory, WebConfigUtils.SecretKey, WebConfigUtils.IsNightlyUpdate); //DirectoryUtils.Copy(PathUtils.Combine(packagePath, DirectoryUtils.SiteFiles.DirectoryName), // PathUtils.GetSiteFilesPath(string.Empty), true); //DirectoryUtils.Copy(PathUtils.Combine(packagePath, DirectoryUtils.SiteServer.DirectoryName), // PathUtils.GetAdminDirectoryPath(string.Empty), true); //DirectoryUtils.Copy(PathUtils.Combine(packagePath, DirectoryUtils.Bin.DirectoryName), // PathUtils.GetBinDirectoryPath(string.Empty), true); //FileUtils.CopyFile(packageWebConfigPath, // PathUtils.Combine(WebConfigUtils.PhysicalApplicationPath, WebConfigUtils.WebConfigFileName), // true); } else if (packageType == PackageType.Plugin) { var pluginPath = PathUtils.GetPluginPath(metadata.Id); DirectoryUtils.CreateDirectoryIfNotExists(pluginPath); DirectoryUtils.Copy(PathUtils.Combine(packagePath, "content"), pluginPath, true); DirectoryUtils.Copy(dllDirectoryPath, PathUtils.Combine(pluginPath, "Bin"), true); //var dependencyPackageDict = GetDependencyPackages(metadata); //foreach (var dependencyPackageId in dependencyPackageDict.Keys) //{ // var dependencyPackageVersion = dependencyPackageDict[dependencyPackageId]; // var dependencyDdlDirectoryPath = // FindDllDirectoryPath( // PathUtils.GetPackagesPath($"{dependencyPackageId}.{dependencyPackageVersion}")); // DirectoryUtils.Copy(dependencyDdlDirectoryPath, PathUtils.Combine(pluginPath, "Bin"), true); //} var configFilelPath = PathUtils.Combine(pluginPath, $"{metadata.Id}.nuspec"); FileUtils.CopyFile(nuspecPath, configFilelPath, true); PluginManager.ClearCache(); } else if (packageType == PackageType.Library) { var fileNames = DirectoryUtils.GetFileNames(dllDirectoryPath); foreach (var fileName in fileNames) { if (StringUtils.EndsWithIgnoreCase(fileName, ".dll")) { var sourceDllPath = PathUtils.Combine(dllDirectoryPath, fileName); var destDllPath = PathUtils.GetBinDirectoryPath(fileName); if (!FileUtils.IsFileExists(destDllPath)) { FileUtils.CopyFile(sourceDllPath, destDllPath, false); } } } } } catch (Exception ex) { errorMessage = ex.Message; return(false); } return(true); }
public static ListInfo GetListInfo(PageInfo pageInfo, ContextInfo contextInfo, EContextType contextType) { var listInfo = new ListInfo { _contextType = contextType }; var innerHtml = contextInfo.InnerHtml; var itemTemplate = string.Empty; if (!string.IsNullOrEmpty(innerHtml)) { var stlElementList = StlParserUtility.GetStlElementList(innerHtml); if (stlElementList.Count > 0) { foreach (var theStlElement in stlElementList) { if (StlParserUtility.IsSpecifiedStlElement(theStlElement, StlItemTemplate.ElementName)) { var attributes = TranslateUtils.NewIgnoreCaseNameValueCollection(); var templateString = StlParserUtility.GetInnerHtml(theStlElement, attributes); if (!string.IsNullOrEmpty(templateString)) { foreach (var key in attributes.AllKeys) { if (!StringUtils.EqualsIgnoreCase(key, StlItemTemplate.Type)) { continue; } var type = attributes[key]; if (StringUtils.EqualsIgnoreCase(type, StlItemTemplate.TypeItem)) { itemTemplate = templateString; } else if (StringUtils.EqualsIgnoreCase(type, StlItemTemplate.TypeHeader)) { listInfo.HeaderTemplate = templateString; } else if (StringUtils.EqualsIgnoreCase(type, StlItemTemplate.TypeFooter)) { listInfo.FooterTemplate = templateString; } else if (StringUtils.EqualsIgnoreCase(type, StlItemTemplate.TypeAlternatingItem)) { listInfo.AlternatingItemTemplate = templateString; } else if (StringUtils.EqualsIgnoreCase(type, StlItemTemplate.TypeSelectedItem)) { if (!string.IsNullOrEmpty(attributes[StlItemTemplate.Selected])) { var selected = attributes[StlItemTemplate.Selected]; var list = new List <string>(); if (selected.IndexOf(',') != -1) { list.AddRange(selected.Split(',')); } else { if (selected.IndexOf('-') != -1) { var first = TranslateUtils.ToInt(selected.Split('-')[0]); var second = TranslateUtils.ToInt(selected.Split('-')[1]); for (var i = first; i <= second; i++) { list.Add(i.ToString()); } } else { list.Add(selected); } } foreach (string val in list) { listInfo.SelectedItems.Set(val, templateString); } if (!string.IsNullOrEmpty(attributes[StlItemTemplate.SelectedValue])) { var selectedValue = attributes[StlItemTemplate.SelectedValue]; listInfo.SelectedValues.Set(selectedValue, templateString); } } } else if (StringUtils.EqualsIgnoreCase(type, StlItemTemplate.TypeSeparator)) { var selectedValue = TranslateUtils.ToInt(attributes[StlItemTemplate.SelectedValue], 1); if (selectedValue <= 1) { listInfo.SeparatorTemplate = templateString; } else { listInfo.SeparatorRepeatTemplate = templateString; listInfo.SeparatorRepeat = selectedValue; } } } } innerHtml = innerHtml.Replace(theStlElement, string.Empty); } else if (StlParserUtility.IsSpecifiedStlElement(theStlElement, StlLoading.ElementName)) { var innerBuilder = new StringBuilder(StlParserUtility.GetInnerHtml(theStlElement)); StlParserManager.ParseInnerContent(innerBuilder, pageInfo, contextInfo); listInfo.LoadingTemplate = innerBuilder.ToString(); innerHtml = innerHtml.Replace(theStlElement, string.Empty); } else if (contextType == EContextType.SqlContent && StlParserUtility.IsSpecifiedStlElement(theStlElement, StlQueryString.ElementName)) { var innerBuilder = new StringBuilder(StlParserUtility.GetInnerHtml(theStlElement)); StlParserManager.ParseInnerContent(innerBuilder, pageInfo, contextInfo); listInfo.QueryString = innerBuilder.ToString(); innerHtml = innerHtml.Replace(theStlElement, string.Empty); } } } } if (string.IsNullOrEmpty(itemTemplate)) { listInfo.ItemTemplate = !string.IsNullOrEmpty(innerHtml) ? innerHtml : "<stl:a target=\"_blank\"></stl:a>"; } else { listInfo.ItemTemplate = itemTemplate; } var isSetDirection = false;//是否设置了direction属性 foreach (var name in contextInfo.Attributes.AllKeys) { var value = contextInfo.Attributes[name]; if (StringUtils.EqualsIgnoreCase(name, StlListBase.ChannelIndex)) { listInfo.ChannelIndex = StlEntityParser.ReplaceStlEntitiesForAttributeValue(value, pageInfo, contextInfo); } else if (StringUtils.EqualsIgnoreCase(name, StlListBase.ChannelName)) { listInfo.ChannelName = StlEntityParser.ReplaceStlEntitiesForAttributeValue(value, pageInfo, contextInfo); } else if (StringUtils.EqualsIgnoreCase(name, StlListBase.Parent)) { listInfo.UpLevel = 1; } else if (StringUtils.EqualsIgnoreCase(name, StlListBase.UpLevel)) { listInfo.UpLevel = TranslateUtils.ToInt(value); } else if (StringUtils.EqualsIgnoreCase(name, StlListBase.TopLevel)) { listInfo.TopLevel = TranslateUtils.ToInt(value); } else if (StringUtils.EqualsIgnoreCase(name, StlListBase.Scope)) { listInfo.Scope = EScopeTypeUtils.GetEnumType(value); } else if (StringUtils.EqualsIgnoreCase(name, StlListBase.IsTop)) { listInfo.IsTop = TranslateUtils.ToBool(value); } else if (StringUtils.EqualsIgnoreCase(name, StlListBase.IsRecommend)) { listInfo.IsRecommend = TranslateUtils.ToBool(value); } else if (StringUtils.EqualsIgnoreCase(name, StlListBase.IsHot)) { listInfo.IsHot = TranslateUtils.ToBool(value); } else if (StringUtils.EqualsIgnoreCase(name, StlListBase.IsColor)) { listInfo.IsColor = TranslateUtils.ToBool(value); } else if (StringUtils.EqualsIgnoreCase(name, StlListBase.Where)) { listInfo.Where = StlEntityParser.ReplaceStlEntitiesForAttributeValue(value, pageInfo, contextInfo); } else if (StringUtils.EqualsIgnoreCase(name, StlListBase.TotalNum)) { listInfo.TotalNum = TranslateUtils.ToInt(StlEntityParser.ReplaceStlEntitiesForAttributeValue(value, pageInfo, contextInfo)); } else if (StringUtils.EqualsIgnoreCase(name, StlPageContents.PageNum)) { listInfo.PageNum = TranslateUtils.ToInt(StlEntityParser.ReplaceStlEntitiesForAttributeValue(value, pageInfo, contextInfo), Constants.PageSize); } else if (StringUtils.EqualsIgnoreCase(name, StlPageContents.MaxPage)) { listInfo.MaxPage = TranslateUtils.ToInt(StlEntityParser.ReplaceStlEntitiesForAttributeValue(value, pageInfo, contextInfo)); } else if (StringUtils.EqualsIgnoreCase(name, StlListBase.StartNum)) { listInfo.StartNum = TranslateUtils.ToInt(StlEntityParser.ReplaceStlEntitiesForAttributeValue(value, pageInfo, contextInfo)); } else if (StringUtils.EqualsIgnoreCase(name, StlListBase.Order)) { if (contextType == EContextType.Content) { listInfo.OrderByString = StlDataUtility.GetContentOrderByString(pageInfo.SiteId, value, ETaxisType.OrderByTaxisDesc); } else if (contextType == EContextType.Channel) { listInfo.OrderByString = StlDataUtility.GetChannelOrderByString(pageInfo.SiteId, value, ETaxisType.OrderByTaxis); } //else if (contextType == EContextType.InputContent) //{ // listInfo.OrderByString = StlDataUtility.GetOrderByString(pageInfo.SiteId, value, ETableStyle.InputContent, ETaxisType.OrderByTaxisDesc); //} else { listInfo.OrderByString = value; } } else if (StringUtils.EqualsIgnoreCase(name, StlListBase.GroupChannel)) { listInfo.GroupChannel = StlEntityParser.ReplaceStlEntitiesForAttributeValue(value, pageInfo, contextInfo); if (string.IsNullOrEmpty(listInfo.GroupChannel)) { listInfo.GroupChannel = "__Empty__"; } } else if (StringUtils.EqualsIgnoreCase(name, StlListBase.GroupChannelNot)) { listInfo.GroupChannelNot = StlEntityParser.ReplaceStlEntitiesForAttributeValue(value, pageInfo, contextInfo); if (string.IsNullOrEmpty(listInfo.GroupChannelNot)) { listInfo.GroupChannelNot = "__Empty__"; } } else if (StringUtils.EqualsIgnoreCase(name, StlListBase.GroupContent) || StringUtils.EqualsIgnoreCase(name, "group")) { listInfo.GroupContent = StlEntityParser.ReplaceStlEntitiesForAttributeValue(value, pageInfo, contextInfo); if (string.IsNullOrEmpty(listInfo.GroupContent)) { listInfo.GroupContent = "__Empty__"; } } else if (StringUtils.EqualsIgnoreCase(name, StlListBase.GroupContentNot) || StringUtils.EqualsIgnoreCase(name, "groupNot")) { listInfo.GroupContentNot = StlEntityParser.ReplaceStlEntitiesForAttributeValue(value, pageInfo, contextInfo); if (string.IsNullOrEmpty(listInfo.GroupContentNot)) { listInfo.GroupContentNot = "__Empty__"; } } else if (StringUtils.EqualsIgnoreCase(name, StlListBase.Tags)) { listInfo.Tags = StlEntityParser.ReplaceStlEntitiesForAttributeValue(value, pageInfo, contextInfo); } else if (StringUtils.EqualsIgnoreCase(name, StlListBase.Columns)) { listInfo.Columns = TranslateUtils.ToInt(value); listInfo.Layout = ELayout.Table; if (listInfo.Columns > 1 && isSetDirection == false) { listInfo.Direction = RepeatDirection.Horizontal; } } else if (StringUtils.EqualsIgnoreCase(name, StlListBase.Direction)) { listInfo.Layout = ELayout.Table; listInfo.Direction = TranslateUtils.ToRepeatDirection(value); isSetDirection = true; } else if (StringUtils.EqualsIgnoreCase(name, StlListBase.Height)) { try { listInfo.Height = Unit.Parse(value); } catch { // ignored } } else if (StringUtils.EqualsIgnoreCase(name, StlListBase.Width)) { try { listInfo.Width = Unit.Parse(value); } catch { // ignored } } else if (StringUtils.EqualsIgnoreCase(name, StlListBase.Align)) { listInfo.Align = value; } else if (StringUtils.EqualsIgnoreCase(name, StlListBase.ItemHeight)) { try { listInfo.ItemHeight = Unit.Parse(value); } catch { // ignored } } else if (StringUtils.EqualsIgnoreCase(name, StlListBase.ItemWidth)) { try { listInfo.ItemWidth = Unit.Parse(value); } catch { // ignored } } else if (StringUtils.EqualsIgnoreCase(name, StlListBase.ItemAlign)) { listInfo.ItemAlign = value; } else if (StringUtils.EqualsIgnoreCase(name, StlListBase.ItemVerticalAlign)) { listInfo.ItemVerticalAlign = value; } else if (StringUtils.EqualsIgnoreCase(name, StlListBase.ItemClass)) { listInfo.ItemClass = value; } else if (StringUtils.EqualsIgnoreCase(name, StlListBase.IsImage)) { listInfo.IsImage = TranslateUtils.ToBool(value); } else if (StringUtils.EqualsIgnoreCase(name, StlListBase.IsVideo)) { listInfo.IsVideo = TranslateUtils.ToBool(value); } else if (StringUtils.EqualsIgnoreCase(name, StlListBase.IsFile)) { listInfo.IsFile = TranslateUtils.ToBool(value); } else if (StringUtils.EqualsIgnoreCase(name, StlContents.IsRelatedContents)) { listInfo.IsRelatedContents = TranslateUtils.ToBool(value); } else if (StringUtils.EqualsIgnoreCase(name, StlListBase.Layout)) { listInfo.Layout = ELayoutUtils.GetEnumType(value); } else if (contextType == EContextType.SqlContent && StringUtils.EqualsIgnoreCase(name, StlSqlContents.ConnectionString)) { listInfo.ConnectionString = value; } else if (contextType == EContextType.SqlContent && StringUtils.EqualsIgnoreCase(name, StlSqlContents.ConnectionStringName)) { listInfo.ConnectionString = WebConfigUtils.GetConnectionStringByName(value); if (string.IsNullOrEmpty(listInfo.ConnectionString)) { listInfo.ConnectionString = WebConfigUtils.ConnectionString; } } else if (contextType == EContextType.SqlContent && StringUtils.EqualsIgnoreCase(name, StlSqlContents.QueryString)) { listInfo.QueryString = StlEntityParser.ReplaceStlEntitiesForAttributeValue(value, pageInfo, contextInfo); } else { listInfo.Others.Set(name, value); } } return(listInfo); }
public void Page_Load(object sender, EventArgs e) { CacheUtils.sendNoCache(Response, Session); var errMsg = ""; var ret = 0; #region checkWebConfig var webConfig = new WebConfig(); ret = WebConfigUtils.readWebConfig(ref webConfig, ref errMsg); if (ret < 0) { MessageUtils.sendInformationMessage(Session, Response, errMsg); return; } if (WebConfigUtils.checkWebConfig(Response, Session, ref webConfig) == false) { MessageUtils.sendInformationMessage(Session, Response, errMsg); return; } #endregion #region checkIfLoggedIn errMsg = ""; var ws = new PASABAHCE_WEB_SERVICE(); var USER_INFO = new CLS_USER_INFO(); ws.init_CLS_USER_INFO(ref USER_INFO); ret = LoginUtils.checkIfLoggedIn(ws, webConfig, Session, Response, ref USER_INFO, ref errMsg); if (ret < 0) { MessageUtils.sendInformationMessage(Session, Response, errMsg); return; } if (USER_INFO.USER_NAME == "") { Response.Redirect("Account/LoginForm.aspx", true); return; } var USER_INFO_LIST = new CLS_USER_INFO(); ret = ws.get_USER(Global.SYSTEM_CODE, USER_INFO.USER_ID, USER_INFO.SIFRE, ref USER_INFO_LIST, ref errMsg); int USER_TYPE = Convert.ToInt32(USER_INFO_LIST.USER_TYPE); Session["USER_TYPE"] = USER_TYPE; #endregion #region taslak files errMsg = ""; var html_taslak = ""; //CMS++ pasabahce.CLS_LANG_TEXT[] TEXT = null; ret = ws.getLangText(webConfig.SQLServerConnectionString, USER_INFO, USER_INFO.LANG, ref TEXT, ref errMsg); StringBuilder JS_LANG_TEXTS = new StringBuilder(); for (int i = 0; i < TEXT.Length; i++) { JS_LANG_TEXTS.Append("LANG_TEXT['" + TEXT[i].LANG_TEXT_ID + "'] = \"" + TEXT[i].LANG_TEXT_CONTENT + "\";" + (char)13 + (char)10); } if (ret < 0) { Session["information_msg"] = errMsg; Response.Redirect("Information.aspx"); return; } //CMS-- ret = FileUtils.getFile(webConfig.WebRootPath, "Pages/Layout/Layout.html", ref html_taslak, ref errMsg); if (ret < 0) { MessageUtils.sendInformationMessage(Session, Response, errMsg); return; } errMsg = ""; var html_menu_bar = ""; ret = FileUtils.getFile(webConfig.WebRootPath, "Pages/Layout/MenuBar.html", ref html_menu_bar, ref errMsg); if (ret < 0) { MessageUtils.sendInformationMessage(Session, Response, errMsg); return; } errMsg = ""; var html_middle_area = ""; ret = FileUtils.getFile(webConfig.WebRootPath, "Pages/Layout/FormLayout.html", ref html_middle_area, ref errMsg); if (ret < 0) { MessageUtils.sendInformationMessage(Session, Response, errMsg); return; } errMsg = ""; var html = ""; ret = FileUtils.getFile(webConfig.WebRootPath, "Pages/Home.html", ref html, ref errMsg); if (ret < 0) { MessageUtils.sendInformationMessage(Session, Response, errMsg); return; } #endregion html_taslak = html_taslak.Replace("<!--[!USER_NAME!]-->", USER_INFO.USER_NAME + " "); string sayfa_baslik = ""; if (USER_INFO.LANG == "TR") { sayfa_baslik = "Ana Sayfa"; } else if (USER_INFO.LANG == "EN") { sayfa_baslik = "Home Page"; } else if (USER_INFO.LANG == "BG") { sayfa_baslik = ""; } PageContentHelper.prepareMenuBar(USER_INFO, ref html_menu_bar); //CMS html_taslak = html_taslak.Replace("<!--[!JS_LANG_TEXTS!]-->", JS_LANG_TEXTS.ToString()); html_taslak = html_taslak.Replace("<!--[!MENU_BAR!]-->", html_menu_bar); html_middle_area = html_middle_area.Replace("<!--[!PAGE_CONTENT!]-->", html); html_taslak = html_taslak.Replace("<!--[!MIDDLE_AREA!]-->", html_middle_area); html_taslak = html_taslak.Replace("<!--[!header_text!]-->", sayfa_baslik); sendHtml(USER_INFO, webConfig, USER_INFO.LANG, html_taslak); }