/* * DynamORM - Dynamic Object-Relational Mapping library. * Copyright (c) 2012-2026, Grzegorz Russek (grzegorz.russek@gmail.com) * All rights reserved. */ using System.Data; using DynamORM.Mapper; using DynamORM.Objects; namespace DynamORM.Tests.Helpers { public class ProcedureParameterObject : IProcedureParameters { [ProcedureParameter("code", Order = 2, DbType = DbType.String, Size = 32)] public string Code { get; set; } [ProcedureParameter("result", Direction = ParameterDirection.Output, Order = 3, DbType = DbType.Int32)] public int Result { get; set; } [ProcedureParameter("description", Direction = ParameterDirection.InputOutput, Order = 4, DbType = DbType.String, Size = 256)] public string Description { get; set; } [ProcedureParameter("status", Direction = ParameterDirection.ReturnValue, Order = 1)] public int Status { get; set; } } public class ProcedureParameterColumnFallbackObject : IProcedureParameters { [DynamORM.Mapper.Column("code", false, DbType.String, 64)] public string Code { get; set; } } public class ProcedureParameterResult { [DynamORM.Mapper.Column("sp_Test")] public int MainResult { get; set; } [DynamORM.Mapper.Column("result")] public int Result { get; set; } [DynamORM.Mapper.Column("description")] public string Description { get; set; } [DynamORM.Mapper.Column("status")] public int Status { get; set; } } public class ProcedureParameterAttributeMainResult { [ProcedureResult] public int MainResult { get; set; } [DynamORM.Mapper.Column("status")] public int Status { get; set; } } public class ProcedureParameterAttributeMainResultField { [ProcedureResult(-1)] public int MainResult; } public class ProcedureMultiResult : IProcedureResultReader { [DynamORM.Mapper.Column("sp_Multi")] public int MainResult { get; set; } [DynamORM.Mapper.Column("status")] public int Status { get; set; } public System.Collections.Generic.List Codes { get; private set; } = new System.Collections.Generic.List(); public System.Collections.Generic.List States { get; private set; } = new System.Collections.Generic.List(); public void ReadResults(IDataReader reader) { while (reader.Read()) Codes.Add(reader.GetString(0)); if (reader.NextResult()) while (reader.Read()) States.Add(reader.GetInt32(0)); } } public class ProcedureAttributedResult { [DynamORM.Mapper.Column("sp_Test")] public int MainResult { get; set; } [DynamORM.Mapper.Column("status")] public int Status { get; set; } [ProcedureResult(0, ColumnName = "Code")] public string FirstCode { get; set; } [ProcedureResult(1, ColumnName = "Code")] public System.Collections.Generic.List Codes { get; set; } [ProcedureResult(2, ColumnName = "State")] public int[] States { get; set; } [ProcedureResult(3)] public Users User { get; set; } [ProcedureResult(4)] public System.Collections.Generic.List AllUsers { get; set; } [ProcedureResult(5, Name = "codes_table")] public DataTable CodesTable { get; set; } } public class ProcedureAttributedResultArgs : IProcedureParameters { [ProcedureParameter("status", Direction = ParameterDirection.Output, Order = 1, DbType = DbType.Int32)] public int Status { get; set; } } public class ProcedureAttributedFieldResult { [ProcedureResult(0)] public string FirstCode; [ProcedureResult(1)] public System.Collections.Generic.List Codes; [ProcedureResult(2, ColumnName = "State")] public System.Collections.Generic.IEnumerable States; [ProcedureResult(3)] public Users User; [ProcedureResult(4, Name = "users_table")] public DataTable UsersTable; } public class ProcedureMultiResultArgs : IProcedureParameters { [ProcedureParameter("status", Direction = ParameterDirection.Output, Order = 1, DbType = DbType.Int32)] public int Status { get; set; } } [Procedure(Name = "sp_exec_test", Owner = "dbo")] public class ExecProcedureDescriptor : Procedure { } public class ExecProcedureDefaultDescriptor : Procedure { } [Procedure(Name = "sp_exec_result")] public class ExecProcedureDescriptorWithExplicitResult : Procedure { } }