public ProcedureData GetProcedure(string procName, ObjectData columnTemplate) { var procTemplate = new ProcedureData(columnTemplate.TableName, procName); try { var list = GetProcedureParams(columnTemplate.TableName, procName, DatabaseUserId); foreach (var parameter in list.FindAll(p => p.InOut == "IN")) { var match = columnTemplate.Find(t => t.ColumnName.Equals(parameter.ColumnName)); if (match != null) { procTemplate.Add(parameter); } } procTemplate.OutParam = list.FirstOrDefault(p => p.InOut == "OUT"); } catch (Exception ex) { throw new ProcedureMetadataRetrievalException(ex, columnTemplate.TableName, procName); } return(procTemplate); }