private void SaveSchema <T>(string schema, FbSchemaBaseCollection <T> collection) where T : IFbSchemaItem
        {
            IFbSchemaItem item;
            string        fileName = $"{_workPath}\\{schema}.log";

            try
            {
                _log.MessageLn($"{strings.extractingSchema} {schema}...");
                var table = GetShema(schema);

                using (StreamWriter sw = new StreamWriter(fileName, File.Exists(fileName)))
                {
                    foreach (DataRow row in table.Rows)
                    {
                        item = collection.GetNewItem();
                        item.ProcessDataRow(row);

                        foreach (DataColumn col in table.Columns)
                        {
                            sw.WriteLine("{0} = {1}", col.ColumnName, row[col]);
                        }
                        sw.WriteLine("============================");
                    }
                    sw.Close();
                }
            }
            catch (Exception e)
            {
                _log.ErrorLn($"{strings.error} {schema} - {e.Message}");
            }
        }
 public void ProcessParameters(FbSchemaBaseCollection <FbSchemaProcedureParam> paramItems)
 {
     foreach (FbSchemaProcedure proc in Items)
     {
         foreach (var param in paramItems.Items.Where(x => x.GetMasterName() == proc.Name))
         {
             proc.Params.Add((FbSchemaProcedureParam)param);
         }
         //paramItems.Items.Where(x => x.GetMasterName().ToUpper() == proc.Name.ToUpper()).ToList().CopyTo(proc.Params.Items.AsEnumerable());
     }
 }