Files
DynamORM/DynamORM.Tests/Helpers/ProcedureParameterModels.cs

77 lines
2.6 KiB
C#

/*
* 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<ProcedureParameterResult>
{
[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 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<string> Codes { get; private set; } = new System.Collections.Generic.List<string>();
public System.Collections.Generic.List<int> States { get; private set; } = new System.Collections.Generic.List<int>();
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 ProcedureMultiResultArgs : IProcedureParameters<ProcedureMultiResult>
{
[ProcedureParameter("status", Direction = ParameterDirection.Output, Order = 1, DbType = DbType.Int32)]
public int Status { get; set; }
}
}