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.WebPeis.PlugIns.ColumnReferences
							 | 
						|
								{
							 | 
						|
								
							 | 
						|
								    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;
							 | 
						|
								        }
							 | 
						|
								
							 | 
						|
								
							 | 
						|
								    }
							 | 
						|
								}
							 |