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

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