Exemple #1
0
        private static void FillColumnData(QueryResult queryResult, TableDto table)
        {
            if (queryResult.Columns == null ||
                !queryResult.Columns.Any())
            {
                return;
            }

            foreach (var dataColumn in queryResult.Columns)
            {
                var tableColumn = table.Columns.SingleOrDefault(c => c.Key == dataColumn.Code);

                if (tableColumn == null)
                {
                    tableColumn = new TableColumnDto
                    {
                        Key   = dataColumn.Code,
                        Order = table.Columns.Any()
                                                        ? table.Columns.Max(_ => _.Order) + 1
                                                        : 1
                    };

                    var columnsList = table.Columns.ToList();

                    columnsList.Add(tableColumn);

                    table.Columns = columnsList.ToArray();
                }

                tableColumn.Description = dataColumn.Description;

                tableColumn.Name = dataColumn.Name;
            }
        }
        public ResponseModelDto DeleteRedshiftData(TableColumnDto dtoModel)
        {
            ResponseModelDto responsemodel = new ResponseModelDto();

            if (dtoModel != null)
            {
                var model = mapper.Map <TableColumnModel>(dtoModel);

                var qry           = String.Format("Delete from {0}  where ", model.TableName);
                var compareColumn = "";
                var itemCount     = 0;
                foreach (var item in model.ColumnsList)
                {
                    if (itemCount > 0)
                    {
                        compareColumn += " AND " + item.ColumnName + "=@" + item.ColumnName;
                    }
                    else
                    {
                        compareColumn += item.ColumnName + "=@" + item.ColumnName;
                    }

                    itemCount++;
                }

                qry += compareColumn;

                responsemodel = redshiftRepository.DeleteRedshiftData(model, qry);
            }
            return(responsemodel);
        }
        public ResponseModelDto SaveRedshiftData(TableColumnDto modelDto)
        {
            ResponseModelDto responsemodel = new ResponseModelDto();

            var model = mapper.Map <TableColumnModel>(modelDto);

            // create dynamic query RedshiftDataModel
            var columnNames  = "";
            var columnValues = "";

            foreach (var item in model.ColumnsList)
            {
                columnNames += item.ColumnName + ",";

                if (item.DataType == "date")
                {
                    columnValues += string.IsNullOrEmpty(item.ColumnValue) ? "null," : "@" + item.ColumnName + ",";
                }
                else
                {
                    columnValues += "@" + item.ColumnName + ",";
                }
            }

            model.ColumnValue = columnValues.TrimEnd(',');
            model.ColumnName  = columnNames.TrimEnd(',');

            responsemodel = redshiftRepository.SaveRedshiftData(model);

            return(responsemodel);
        }
Exemple #4
0
        private static TableColumnModel ToModel(this TableColumnDto column)
        {
            if (column == null)
            {
                return(null);
            }

            return(new TableColumnModel
            {
                Description = column.Description,
                Key = column.Key,
                Name = column.Name,
                Order = column.Order
            });
        }
        public virtual ApiResult GetColumns()
        {
            var fields       = Entity <TEntity> .Meta.AllFields;
            var fieldDtoList = new List <TableColumnDto>(fields.Length);

            foreach (var field in fields)
            {
                var fieldDto = new TableColumnDto();
                fieldDto.Copy(field);

                // 处理成小驼峰命名规则
                fieldDto.Name = fieldDto.Name.ToLower()[0].ToString() + fieldDto.Name.Substring(1);

                fieldDtoList.Add(fieldDto);
            }

            return(ApiResult.Ok(fieldDtoList));
        }
Exemple #6
0
        public virtual ApiResult <List <TableColumnDto> > GetColumns()
        {
            var fields = Entity <TEntity> .Meta.AllFields.Where(
                w => !w.Type.IsGenericType &&
                !typeof(EntityBase).IsAssignableFrom(w.Type) &&
                !w.Type.IsInterface &&
                !w.Type.IsArray
                ).ToList();

            var fieldDtoList = new List <TableColumnDto>(fields.Count);

            foreach (var field in fields)
            {
                var fieldDto = new TableColumnDto();
                fieldDto.Copy(field);

                // 处理成小驼峰命名规则
                // fieldDto.Name = fieldDto.Name.ToLower()[0].ToString() + fieldDto.Name.Substring(1);

                // 非数据库字段设置为只读
                if (field.Field == null)
                {
                    fieldDto.ReadOnly = true;
                }

                if (field.PrimaryKey)
                {
                    fieldDtoList.Insert(0, fieldDto);
                }
                else
                {
                    fieldDtoList.Add(fieldDto);
                }
            }

            return(ApiResult.Ok(fieldDtoList));
        }
Exemple #7
0
 private static void AssertColumn(TableColumnDto column, string columnKey, int order)
 {
     column.Should().NotBeNull();
     column.Key.ShouldBeEquivalentTo(columnKey);
     column.Order.ShouldBeEquivalentTo(order);
 }
        public ActionResult DeleteRedshiftData([FromBody] TableColumnDto model)
        {
            var response = redshiftService.DeleteRedshiftData(model);

            return(Ok(response));
        }