using System;
using System.Data;
using System.Data.SqlClient;
using Municipalidad.Utils;
using Remuneraciones.DataModel;
using Remuneraciones.DataSetFT;

namespace Remuneraciones.DataAccess
{
	public class Sindicatos
	{
		//Field para almacenar la conexión
		private SqlConnection _connection = null;

		/// <summary>
		/// Constructor
		/// </summary>
		/// <param name="connection"></param>
		public Sindicatos(SqlConnection connection)
		{
			_connection = connection;
		}

		#region Sindicatos

		public DSSindicatos GetSindicatos(string idSindicatos, string idNumero, int mes)
		{
			// Almacena retorno del SqlCommand
			DataSet ds;

			try
			{
				// Ejecuta SqlCommand
				ds = UtilsDB.ExecuteDataset(_connection, CommandType.StoredProcedure, Schema.Sindicatos.SP_SELECT_BY_PK, 
					UtilsDB.MP("@idSindicatos", SqlDbType.Char, 3, idSindicatos), 
					UtilsDB.MP("@idNumero", SqlDbType.Char, 3, idNumero), 
					UtilsDB.MP("@Mes", SqlDbType.TinyInt, 0, mes));
			}
			catch (Exception ex)
			{
				throw ex;
			}

			return GetDSFTSindicatos(ds);
		}

		/// <summary>
		/// Carga datos al DataSet fuertemente tipeado
		/// </summary>
		/// <param name="ds">DataSet con los datos a cargar en el DataSet fuertemente tipeado</param>
		/// <returns>DataSet fuertemente tipeado</returns>
		internal DSSindicatos GetDSFTSindicatos(DataSet ds)
		{
			DSSindicatos dsFT = new DSSindicatos();
			DataRow row;

			foreach(DataRow dr in ds.Tables[0].Rows)
			{
				row = dsFT.Tables[0].NewRow();

				foreach(DataColumn dc in dsFT.Tables[0].Columns)
				{
					row[dc.ColumnName] = dr[dc.ColumnName];
				}

				dsFT.Tables[0].Rows.Add(row);
			}

			return dsFT;
		}

		#endregion
	}
}