You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
143 lines
4.5 KiB
143 lines
4.5 KiB
using System;
|
|
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using System.Data.Common;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Text.Json;
|
|
using System.Threading.Tasks;
|
|
using Dapper;
|
|
using Microsoft.Extensions.Configuration;
|
|
using Npgsql;
|
|
using Shentun.Utilities;
|
|
namespace Shentun.Peis.PlugIns
|
|
{
|
|
|
|
public class ColumnReferencePlugInsBase : PlugInsBase,IColumnReferencePlugIns
|
|
{
|
|
|
|
protected string AppSql;
|
|
private List<ColumnReferenceColumn> _columns;
|
|
private List<ColumnReferenceColumn> _interfaceColumns;
|
|
|
|
public ColumnReferencePlugInsBase(string parmValue):base(parmValue)
|
|
{
|
|
|
|
AppSql = InterfaceConfig.GetSection("App").GetSection("Sql").Value;
|
|
var columns = InterfaceConfig.GetSection("App").GetSection("Columns").Value;
|
|
string[]? columnArry;
|
|
if (columns != null)
|
|
{
|
|
columns = columns.Replace(",", ",");
|
|
columnArry = columns.Split(',');
|
|
_columns = new List<ColumnReferenceColumn>();
|
|
foreach (var column in columnArry)
|
|
{
|
|
var singleColumns = column.Split('=');
|
|
if (singleColumns.Length == 2)
|
|
{
|
|
_columns.Add(new ColumnReferenceColumn()
|
|
{
|
|
Column = singleColumns[0],
|
|
Name = singleColumns[1]
|
|
});
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
columns = InterfaceConfig.GetSection("Interface").GetSection("Columns").Value;
|
|
if(columns != null)
|
|
{
|
|
columns = columns.Replace(",", ",");
|
|
columnArry = columns.Split(',');
|
|
_interfaceColumns = new List<ColumnReferenceColumn>();
|
|
foreach (var columnName in columnArry)
|
|
{
|
|
var singleColumns = columnName.Split('=');
|
|
if (singleColumns.Length == 2)
|
|
{
|
|
_interfaceColumns.Add(new ColumnReferenceColumn()
|
|
{
|
|
Column = singleColumns[0],
|
|
Name = singleColumns[1]
|
|
});
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|
|
public virtual List<ColumnReferenceColumn> GetAppColumns()
|
|
{
|
|
if (_columns == null || _columns.Count() == 0)
|
|
{
|
|
return new List<ColumnReferenceColumn>()
|
|
{
|
|
new ColumnReferenceColumn()
|
|
{
|
|
Column = "Code",
|
|
Name = "编码"
|
|
},
|
|
new ColumnReferenceColumn()
|
|
{
|
|
Column = "DisplayName",
|
|
Name = "名称"
|
|
}
|
|
|
|
};
|
|
}
|
|
return _columns;
|
|
|
|
}
|
|
|
|
public virtual List<ColumnReferenceColumn> GetInterfaceColumns()
|
|
{
|
|
if (_interfaceColumns == null || _interfaceColumns.Count() == 0)
|
|
{
|
|
return new List<ColumnReferenceColumn>()
|
|
{
|
|
new ColumnReferenceColumn()
|
|
{
|
|
Column = "Code",
|
|
Name = "编码"
|
|
},
|
|
new ColumnReferenceColumn()
|
|
{
|
|
Column = "DisplayName",
|
|
Name = "名称"
|
|
}
|
|
|
|
};
|
|
}
|
|
return _interfaceColumns;
|
|
}
|
|
public virtual async Task<List<ColumnReferenceCodeValue>> GetAppCodeValuesAsync()
|
|
{
|
|
using (DbConnection conn = new NpgsqlConnection(AppConnctionStr))
|
|
{
|
|
var list = (await conn.QueryAsync<ColumnReferenceCodeValue>(AppSql)).ToList();
|
|
return list;
|
|
}
|
|
}
|
|
|
|
public virtual async Task<List<ColumnReferenceCodeValue>> GetInterfaceCodeValuesAsync()
|
|
{
|
|
return new List<ColumnReferenceCodeValue>()
|
|
{
|
|
|
|
};
|
|
}
|
|
|
|
public virtual async Task<List<ColumnReferenceFilterCodeValue>> GetAppFilterCodeValuesAsync()
|
|
{
|
|
throw new NotImplementedException();
|
|
}
|
|
|
|
public virtual string GetAppFilterColumnName()
|
|
{
|
|
return null;
|
|
}
|
|
|
|
|
|
}
|
|
}
|