コード例 #1
0
        public override Column Add(AddColumnModel model)
        {
            if (string.IsNullOrEmpty(model.Name))
            {
                throw new Exception("Kolon ismi boş olamaz.");
            }
            var columnControlEntry = Dal.Get(x => x.Name == model.Name && x.TableId == model.TableId);

            if (columnControlEntry != null)
            {
                throw new Exception("Bu kolon isminden daha önce oluşturulmuş.");
            }
            switch (model.ColumnType)
            {
            case ColumnType.MultipleSelectList:
            case ColumnType.SelectList:
                var targetTable  = _tableManager.GetById(model.TargetTableId);
                var targetColumn = GetById(model.TargetColumnId);
                model.TargetTable           = targetTable.Name;
                model.TargetTableTextColumn = targetColumn.Name;
                break;
            }

            if (model.ColumnType == ColumnType.MultipleImage || model.ColumnType == ColumnType.MultipleSelectList ||
                model.ColumnType == ColumnType.TextArea || model.ColumnType == ColumnType.Editor)
            {
                model.ShowInList = false;
            }

            var entry = base.Add(model);

            _dal.CreateColumn(entry.Id);
            return(entry);
        }
コード例 #2
0
        public TableListModel GetTableListModel(long id)
        {
            var result = new TableListModel();

            result.Table   = _tableManager.GetById(id);
            result.Columns = _columnManager.List(x => x.TableId == id).OrderBy(x => x.ListOrder).ToList();


            var q = $"SELECT {result.Table.Name}.Id AS Id,";

            foreach (var item in result.Columns.Where(x => x.ShowInList))
            {
                switch (item.ColumnType)
                {
                case ColumnType.SelectList:
                    q += $"{item.TargetTable}.{item.TargetTableTextColumn} AS {item.Name},";
                    break;

                default:
                    q += $"{result.Table.Name}.{item.Name} AS {item.Name},";
                    break;
                }
            }

            q  = q.Trim(',');
            q += $" FROM {result.Table.Name}\n";

            if (result.Columns.Any(x => x.ShowInList && x.ColumnType == ColumnType.SelectList))
            {
                foreach (var item in result.Columns.Where(x => x.ShowInList && x.ColumnType == ColumnType.SelectList))
                {
                    q += $"LEFT JOIN {item.TargetTable} ON {item.TargetTable}.Id={result.Table.Name}.{item.Name} \n";
                }
            }

            if (result.Table.MultipleLanguage)
            {
                q += $" WHERE {result.Table.Name}.LanguageId=" + App.Common.Language.Id;
            }

            result.Entries = new SqlProvider().List(q);
            return(result);
        }