Esempio n. 1
0
        /// <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;
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
                /// <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);

                   
        }
Esempio n. 4
0
 /// <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);
     }
 }
Esempio n. 5
0
        /// <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);
     }
 }
Esempio n. 7
0
        /// <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);
            }
        }
Esempio n. 8
0
        /// <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);
        }
Esempio n. 9
0
 private void Awake()
 {
     _gameDefs.CheckNull();
     _playerBallDef.CheckNull();
 }
Esempio n. 10
0
 /// <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;
 }