public IActionResult SchemaTable([FromBody] TReportsSchemaTableRequest request)
        {
            Log.Information("***Executando método 'SchemaTable'***");
            Log.Information("-----Leitura dos parâmetros  -----" + System.Environment.NewLine);
            Log.Information(JsonConvert.SerializeObject(request));
            Log.Information(System.Environment.NewLine);
            Log.Information("-----Fim da leitura dos parâmetros -----" + System.Environment.NewLine);

            try
            {
                TReportsSchemaTableResponse response = new TReportsSchemaTableResponse();
                response = GetSchemaTable(request);
                Log.Information("***Resposta do método 'SchemaTable'***");
                Log.Information(JsonConvert.SerializeObject(response));
                Log.Information(System.Environment.NewLine);
                Log.Information("-----Fim da resposta do método 'SchemaTable'-----" + System.Environment.NewLine);

                return(Ok(response));
            }
            catch (Exception ex)
            {
                Log.Error(ex.Message);
                Response.StatusCode = 500;
                return(Accepted(new TReportsCustomError()
                {
                    code = "500", detailedMessage = ex.StackTrace, message = ex.Message
                }));
            }
        }
Beispiel #2
0
        internal static void GetSchemaTable(TReportsSchemaTableRequest request, TReportsSchemaTableResponse response)
        {
            DataTable tableSource     = new DataTable();
            DataTable tableDictionary = new DataTable();
            string    description     = null;

            tableDictionary.ReadXml("Data\\Dicionario.xml");

            if (request.TableSourceName == "EMPRESA")
            {
                tableSource.ReadXml("Data\\Empresa.xml");
                description = "Empresas do dataset";
            }
            else if (request.TableSourceName == "PAIS")
            {
                tableSource.ReadXml("Data\\Pais.xml");
                description = "Pais do dataset";
            }
            else

            {
                tableSource.ReadXml("Data\\Filial.xml");
                description = "Filiais do dataset";
            }

            if (tableSource.Columns.Count > 0)
            {
                response.SchemaTable = new SchemaTable();
                response.SchemaTable.TableSourceName        = tableSource.TableName;
                response.SchemaTable.TableSourceDescription = description;
                List <Column> columns = new List <Column>();
                foreach (DataColumn columnSchema in tableSource.Columns)
                {
                    Column column = new Column();
                    column.ColumnName = columnSchema.ColumnName;

                    DataRow[] drDicionario = tableDictionary.Select(string.Format("TABELA = '{0}' AND COLUNA = '{1}'", tableSource.TableName, columnSchema.ColumnName));

                    column.ColumnDescription = drDicionario[0]["DESCRICAO"].ToString();
                    column.ColumnType        = columnSchema.DataType.ToString();
                    columns.Add(column);
                }
                response.SchemaTable.Columns = columns.ToArray();
                MapColumns(response.SchemaTable.Columns);
            }
        }