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); }
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); }