Beispiel #1
0
        public void DeleteTable(int id)
        {
            BTable          btable          = new BTable(id);
            TableController tableController = new TableController();

            tableController.DeleteTable(btable);
        }
Beispiel #2
0
        public void CreateTable(int seats, bool reserved)
        {
            BTable          btable          = new BTable(seats, reserved);
            TableController tableController = new TableController();

            tableController.CreateTable(btable);
        }
Beispiel #3
0
        public void UpdateTable(int id, int seats, bool reserved)
        {
            BTable          btable          = new BTable(id, seats, reserved);
            TableController tableController = new TableController();

            tableController.UpdateTable(btable);
        }
Beispiel #4
0
        public void Render(RenderTreeBuilder renderTreeBuilder, RenderConfig config)
        {
            List <KeyValueModel> tableDataSource = new List <KeyValueModel>();
            var attributeConfig = (TableAttribute)config.ControlAttribute;

            renderTreeBuilder.OpenComponent(0, config.InputControlType);
            renderTreeBuilder.AddAttribute(1, nameof(BFormItemObject.EnableAlwaysRender), true);
            renderTreeBuilder.AddAttribute(2, nameof(BTable.AutoGenerateColumns), true);
            renderTreeBuilder.AddAttribute(3, nameof(BTable.DataType), typeof(KeyValueModel));
            if (attributeConfig != null)
            {
                renderTreeBuilder.AddAttribute(4, nameof(BTable.Height), attributeConfig.Height);
                renderTreeBuilder.AddAttribute(5, nameof(BTable.IsEditable), attributeConfig.IsEditable);
                if (attributeConfig.IsEditable)
                {
                    renderTreeBuilder.AddAttribute(6, nameof(BTable.DataType), typeof(KeyValueModel));
                    if (config.Page == null)
                    {
                        ExceptionHelper.Throw(ExceptionHelper.CascadingValueNotFound, "表格启用可编辑功能后必须在外面套一层 CascadingValue,值为 this,名称为 Page");
                    }
                    renderTreeBuilder.AddAttribute(7, nameof(BTable.OnSave), EventCallback.Factory.Create <TableSaveEventArgs>(config.Page, DefaultSaverAsync));
                }
            }
            renderTreeBuilder.AddAttribute(8, nameof(BTable.DataSourceChanged), EventCallback.Factory.Create <object>(this, dataSource =>
            {
                tableDataSource     = (List <KeyValueModel>)dataSource;
                config.EditingValue = dataSource;
            }));
            renderTreeBuilder.AddAttribute(9, nameof(BTable.DataSource), tableDataSource);
            renderTreeBuilder.AddComponentReferenceCapture(10, table => currentTable = (BTable)table);
            renderTreeBuilder.CloseComponent();
        }
Beispiel #5
0
        /// <summary>
        /// 初始化数据库信息
        /// </summary>
        /// <returns>结果</returns>
        public Result InitDatabaseInfo()
        {
            Result result = new Result();

            try
            {
                var conInfo = new BConString().GetConString(this.TaskInfo.BusinessKeyID);
                if (string.IsNullOrWhiteSpace(conInfo?.KeyID))
                {
                    result.Msg = "获取当前任务信息失败";
                    return(result);
                }

                IDBOperator op = new DBOperator();
                ////获取数据库连接
                SqlSugarClient client = null;
                ///根据链接获取此链接下所有数据库
                var dataBases = op.GetAllDataBase(conInfo.ConnectionString, ref client);
                ///根据数据库获取所有表
                if (dataBases == null || dataBases.Count == 0)
                {
                    result.Msg     = "当前链接没有数据库";
                    result.Success = true;
                    return(result);
                }

                Dictionary <string, List <Table> > dBAndTables = new Dictionary <string, List <Table> >();
                ////这里表多了会不会超时,待处理
                foreach (var item in dataBases)
                {
                    Thread.Sleep(100);
                    dBAndTables.Add(item, op.GetAllTables(item, client));
                }

                ///根据规则判断表的生成规则,并生成tables的表信息
                var tables = this.BuildTableModel(dBAndTables, conInfo);
                var res    = new BTable().AddTableBatch(tables);
                ////筛选需要定期建表的
                var           cycleTables = tables.FindAll(p => p.SplitType != SplitType.None && p.SplitType != SplitType.HASH);
                List <DBTask> tasks       = new List <DBTask>();
                cycleTables.ForEach(p => tasks.Add(new DBTask()
                {
                    BusinessKeyID = p.TabelKeyID, BusinessType = BusinessType.表建表
                }));
                var insertRes = new BTask().AddTasks(tasks);
                if (insertRes.Success)
                {
                    this.TaskInfo.NextExecuteTime = DateTime.Now.AddDays(1);
                }

                return(insertRes);
            }
            catch (Exception e)
            {
                NLog.LogManager.GetCurrentClassLogger().Error($"{e}");
                result.Msg = e.Message;
            }

            return(result);
        }
Beispiel #6
0
 public void DeleteTable(BTable bTable)
 {
     using (SqlConnection connection = new SqlConnection(_connectionString))
     {
         connection.Open();
         using (SqlCommand cmdDeleteTable = connection.CreateCommand())
         {
             cmdDeleteTable.CommandText = "delete from BTable where id = @id";
             cmdDeleteTable.Parameters.AddWithValue("Id", bTable.Id);
             cmdDeleteTable.ExecuteNonQuery();
         }
     }
 }
Beispiel #7
0
 public void CreateTable(BTable bTable)
 {
     using (SqlConnection connection = new SqlConnection(_connectionString))
     {
         connection.Open();
         using (SqlCommand cmdInsertProd = connection.CreateCommand())
         {
             cmdInsertProd.CommandText = "INSERT INTO BTable(Seats, Reserved) VALUES(@Seats, @Reserved)";
             cmdInsertProd.Parameters.AddWithValue("Seats", bTable.Seats);
             cmdInsertProd.Parameters.AddWithValue("Reserved", bTable.Reserved);
             cmdInsertProd.ExecuteNonQuery();
         }
     }
 }
Beispiel #8
0
 public void UpdateTable(BTable bTable)
 {
     using (SqlConnection connection = new SqlConnection(_connectionString))
     {
         connection.Open();
         using (SqlCommand cmdUpdateTable = connection.CreateCommand())
         {
             cmdUpdateTable.CommandText = "update BTable set seats = @Seats, reserved = @Reserved where id = @id";
             cmdUpdateTable.Parameters.AddWithValue("Id", bTable.Id);
             cmdUpdateTable.Parameters.AddWithValue("Seats", bTable.Seats);
             cmdUpdateTable.Parameters.AddWithValue("Reserved", bTable.Reserved);
             cmdUpdateTable.ExecuteNonQuery();
         }
     }
 }
Beispiel #9
0
        public List <BTable> GetAllFreeTables()
        {
            List <BTable> tables = new List <BTable>();
            BTable        tempT;

            using (SqlConnection connection = new SqlConnection(_connectionString)) {
                connection.Open();
                using (SqlCommand cmd = connection.CreateCommand()) {
                    cmd.CommandText = "select Id, Seats, Reserved from BTable where reserved = 'false'";
                    SqlDataReader reader = cmd.ExecuteReader();
                    while (reader.Read())
                    {
                        tempT          = new BTable();
                        tempT.Id       = reader.GetInt32(reader.GetOrdinal("Id"));
                        tempT.Seats    = reader.GetInt32(reader.GetOrdinal("Seats"));
                        tempT.Reserved = reader.GetBoolean(reader.GetOrdinal("Reserved"));
                        tables.Add(tempT);
                    }
                }
            }
            return(tables);
        }
Beispiel #10
0
        public BTable GetMainTable(int user_id,int shift_id)
        {
            BTable res = new BTable();

            _cmd = CreateCommand("GetMainTable");
            _param = CreateParameter("@user_id", DbType.Int32, 4);
            _param.Value = user_id;
            _cmd.Parameters.Add(_param);

            _param = CreateParameter("@shift_id", DbType.Int32, 4);
            _param.Value = shift_id;
            _cmd.Parameters.Add(_param);
            _DR = ExecuteDataReader(_cmd.ExecuteReader);

            while (_DR.Read())
            {
                BureaRecord br = new BureaRecord();
                string address = _DR["address"].ToString();
                br = res.GetRecordByAddress(address);

                if (br.Address == "-1")
                {
                    br.Address = address;
                    br.RegisterDate = (DateTime)_DR["created_Date"];
                }
                if (_DR["reg_time"] != DBNull.Value)
                    br.RegisterTime = ((DateTime)_DR["reg_time"]).ToShortTimeString();
                br.card_id = (int)_DR["card_id"];
                br.DeadFIO = _DR["dead_fio"].ToString();
                if (_DR["Avans"] != DBNull.Value)
                    br.Avans = (double)_DR["Avans"];
                else
                    br.Avans = 0;
                br.Transport = _DR["transport"].ToString();
                br.Agent = _DR["agent_name"].ToString();
                br.ShiftId = (int)_DR["shift_id"];
                br.PhoneNumber = _DR["phone_number"].ToString();
                br.Comments = _DR["Comments"].ToString();
                br.Result = _DR["Result"].ToString();
                br.Office = _DR["office_name"].ToString();
                if (_DR["viewed"] != DBNull.Value)
                    br.IsCardViewed = true;
                else
                    br.IsCardViewed = false;

                res.Add(br);
            }
            _DR.Close();

            return res;
        }
Beispiel #11
0
        public Result ExecuteTableCreateTables()
        {
            Result    result    = new Result();
            TableInfo tableInfo = null;

            try
            {
                tableInfo = new BTable().GetTableByKeyId(this.TaskInfo.BusinessKeyID)?.Data;
                if (string.IsNullOrWhiteSpace(tableInfo?.TabelKeyID))
                {
                    result.Msg = "获取表信息失败";
                    return(result);
                }

                var conInfo = new BConString().GetConString(tableInfo?.ConStringKeyID);
                if (string.IsNullOrWhiteSpace(conInfo?.KeyID) || string.IsNullOrWhiteSpace(conInfo?.ConnectionString))
                {
                    result.Msg = "获取链接信息失败";
                    return(result);
                }

                IDBOperator op  = new DBOperator();
                var         con = ConnectionHelper.GetSqlSugarClientByConString(conInfo.ConnectionString);

                var    ddl       = op.GetTableDDL(tableInfo.DatabaseName, tableInfo.MaxTableName, con);
                string nexttable = this.GetNextTableName(tableInfo.SplitType, tableInfo.Format);
                string use       = $" use {tableInfo.DatabaseName};";
                string createRes = use + ddl.Replace(tableInfo.MaxTableName, $"{tableInfo.TableName}{nexttable}");
                var    res       = op.ExecuteSql(createRes, con);
                if (res)
                {
                    tableInfo.MaxTableName = $"{ tableInfo.TableName}{ nexttable}";
                    var upRes = new BTable().UpdateTableByKeyId(tableInfo);
                    if (upRes.Success == false)
                    {
                        result.Msg = "更新最大表失败";
                        return(result);
                    }
                }

                result.Success = res;
                return(result);
            }
            catch (Exception e)
            {
                NLog.LogManager.GetCurrentClassLogger().Error(e);
                result.Msg = e.Message;
                if (e.Message.Contains("already exists"))
                {
                    result.Success = true;
                    result.Msg     = string.Empty;
                }

                return(result);
            }
            finally
            {
                if (result.Success)
                {
                    this.TaskInfo.NextExecuteTime = this.GetNextExecuteTime(tableInfo.SplitType);
                }
            }
        }
Beispiel #12
0
        public void DeleteTable(BTable btable)
        {
            DBTable dBTable = new DBTable();

            dBTable.DeleteTable(btable);
        }
Beispiel #13
0
        public void UpdateTable(BTable btable)
        {
            DBTable dBTable = new DBTable();

            dBTable.UpdateTable(btable);
        }
Beispiel #14
0
        public void CreateTable(BTable btable)
        {
            DBTable dBTable = new DBTable();

            dBTable.CreateTable(btable);
        }