/// <summary> /// Initialises a new instance of the <see cref="Template" /> class. /// </summary> /// <param name="docType">Type of the document.</param> /// <param name="elements">The elements.</param> public Template(DocType docType, List <JElement> elements) { elements.CheckNull("elements"); this.DocType = docType; this.Elements = elements; }
public async Task SubscribeAsync(List <string> subscribeNames) { subscribeNames.CheckNull(); //创建一个信道 channel = await narutoChannelFactory.GetAsync(); //绑定存储的消息队列 channel.QueueDeclare(queue: RabbitMQOption.QueueName, durable: true, exclusive: false, autoDelete: false, arguments: null); //设置绑定关系 foreach (var subscribeName in subscribeNames) { logger.LogInformation("开始订阅[{subscribeName}]信息", subscribeName); //将队列和交换机还有路由key绑定关系 channel.QueueBind(queue: RabbitMQOption.QueueName, exchange: RabbitMQOption.ExchangeName, routingKey: subscribeName); logger.LogInformation("订阅完成[{subscribeName}]", subscribeName); } // 构造消费者实例 var consumer = new EventingBasicConsumer(channel); // 绑定消息接收后的事件委托 consumer.Received += ReceivedMessage; //消费取消 consumer.ConsumerCancelled += ConsumerCancelledEvent; //服务关闭的时候 consumer.Shutdown += ShutdownEvent; // 启动消费者 channel.BasicConsume(queue: RabbitMQOption.QueueName, autoAck: false, consumer: consumer); }
/// <summary> /// 根据数据源(数据库表)动态构建DataTable类型对象,并填充slq参数化数据 /// </summary> /// <param name="tabName">表名称</param> /// <param name="listParameters">sql参数化</param> /// <returns>DataTable</returns> public static DataTable CreateDataTable(string tabName, List <SqlParameter[]> listParameters) { #region 1.查询数据源(数据库表) string sqlQuery = $"select * from {tabName} where 1!=1"; DataTable dt = GetDataTable(sqlQuery); #endregion #region 2.构建DataTable构架:根据数据源(数据库表)动态构建DataTable的构架 DataTable myDt = new DataTable(tabName.Trim()); //完成数据库表动态创建DataTable的构架,但是里面是没有任何数据的 foreach (DataColumn dc in dt.Columns) { { string columnName = dc.ColumnName.ToString().Trim(); //获取表列名称 string columnType = dc.DataType.ToString().Trim(); //获取表类型名称 myDt.Columns.Add(new DataColumn(columnName, Type.GetType(columnType))); } } #endregion #region 3.DataTable填充数据:在构建好的DataTable类型中填充(Sql参数化)数据 //在构建好的myDt(DataTable类型)中填充数据(批量数据) foreach (SqlParameter[] parameters in listParameters.CheckNull()) { { foreach (SqlParameter parameter in parameters.CheckNull()) { { DataRow dr = myDt.NewRow(); //在构建好的Datatable中动态添加行 //参数格式化,防止sql注入 var name = parameter.ParameterName.Trim(); var val = parameter.Value; foreach (DataColumn dc in myDt.Columns) { { string columnName = dc.ColumnName.ToString().Trim(); //获取表列名称 dr[columnName] = val; } } myDt.Rows.Add(dr); } } } } #endregion return(myDt); }
/// <summary> /// 保存选中角色与用户关系信息 /// </summary> /// <param name="roleIds">选中角色ID集合</param> /// <param name="userId">用户ID</param> public void SaveUsersInRoles(List<Guid> roleIds, Guid userId) { roleIds.CheckNull("roleIds"); userId.CheckNull("userId"); var user = UserRepository.Find(userId); if (user == null) throw new Warning("所设置的用户不存在"); //删除此用户关联的角色 user.Roles.Clear(); //关联选中的角色 foreach (var role in roleIds.Select(id => RoleRepository.Single(p => p.Id == id))) { user.Roles.Add(role); } }
/// <summary> /// 删除图标 /// </summary> /// <param name="ids">图标编号集合</param> /// <param name="cssPath">图标Css的路径</param> public List <Icon> Delete(List <Guid> ids, string cssPath) { ids.CheckNull("ids"); var result = new List <Icon>(); if (ids.Count == 0) { return(result); } result = IconRepository.Find(ids); RemoveFromRepository(result); DeleteFiles(result); RemoveCss(result, cssPath); return(result); }
/// <summary> /// 保存选中应用程序与租户关系信息 /// </summary> /// <param name="applicationIds">选中应用程序ID集合</param> /// <param name="tenantId">租户ID</param> public void SaveTenantInApplications(List<Guid> applicationIds, Guid tenantId) { applicationIds.CheckNull("applicationIds"); tenantId.CheckNull("tenantId"); var tenant = TenantRepository.Find(tenantId); if (tenant == null) throw new Warning("所设置的租户不存在"); //删除此租户关联的应用程序 tenant.Applications.Clear(); //关联选中的应用程序 foreach (var application in applicationIds.Select(id => ApplicationRepository.Single(p => p.Id == id))) { tenant.Applications.Add(application); } }
/// <summary> /// 处理订阅信息 /// </summary> /// <param name="subscribeName"></param> /// <returns></returns> public async Task SubscribeAsync(List <string> subscribeNames) { subscribeNames.CheckNull(); foreach (var subscribeName in subscribeNames) { logger.LogInformation("开始订阅[{subscribeName}]信息", subscribeName); //订阅消息 await redis.Subscribe.SubscribeAsync(subscribeName, async (subscribeName, msg) => { //处理消息 await subscribeHandler.HandlerAsync(subscribeName, msg); }); logger.LogInformation("订阅成功[{subscribeName}]", subscribeName); } }
/// <summary> /// 根据数据源(数据库表)动态构建DataTable类型对象,并填充slq参数化数据 /// </summary> /// <param name="tabName">表名称</param> /// <param name="listParameters">sql参数化</param> /// <returns>DataTable</returns> public static DataTable CreateDataTable(string tabName, List <SqlParameter[]> listParameters) { string sqlQuery = $"select * from {tabName} where 1!=1"; DataTable myDt = new DataTable(tabName.Trim()); try { Log2Txt.logInfo(Log2Txt.GetMethodInfo() + "sql:" + sqlQuery); DataTable dt = GetDataTable(sqlQuery); //完成数据库表动态创建DataTable的构架,但是里面是没有任何数据的 foreach (DataColumn dc in dt.Columns) { string columnName = dc.ColumnName.ToString().Trim(); //获取表列名称 string columnType = dc.DataType.ToString().Trim(); //获取表类型名称 myDt.Columns.Add(new DataColumn(columnName, Type.GetType(columnType))); } //在构建好的myDt(DataTable类型)中填充数据(批量数据) foreach (SqlParameter[] parameters in listParameters.CheckNull()) { foreach (SqlParameter parameter in parameters.CheckNull()) { DataRow dr = myDt.NewRow(); //在构建好的Datatable中动态添加行 //参数格式化,防止sql注入 var name = parameter.ParameterName.Trim(); var val = parameter.Value; foreach (DataColumn dc in myDt.Columns) { string columnName = dc.ColumnName.ToString().Trim(); //获取表列名称 dr[columnName] = val; } myDt.Rows.Add(dr); } } } catch (Exception e) { Log2Txt.logError(Log2Txt.GetMethodInfo() + e.Message); } return(myDt); }
private void Awake() { _gameDefs.CheckNull(); _playerBallDef.CheckNull(); }
/// <summary> /// Initializes a new instance of the <see cref="MatchWord"/> class. /// </summary> /// <param name="specialCharacters">The special characters.</param> public MatchWord(List <StringMatcherBase> specialCharacters) { specialCharacters.CheckNull("specialCharacters"); this.SpecialCharacters = specialCharacters; }