﻿
using System;
using System.Text;
using System.Data;
using System.Collections.Generic;
using System.Configuration;
using System.Runtime.Remoting;
using Softv.Entities;
using SoftvConfiguration;
using Globals;

namespace Softv.Providers
{
    /// <summary>
    /// Class                   : Softv.Providers.MotivoCancelacionProvider
    /// Generated by            : Class Generator (c) 2014
    /// Description             : MotivoCancelacion Provider
    /// File                    : MotivoCancelacionProvider.cs
    /// Creation date           : 20/05/2016
    /// Creation time           : 06:35 p. m.
    /// </summary>
    public abstract class MotivoCancelacionProvider : Globals.DataAccess
    {

        /// <summary>
        /// Instance of MotivoCancelacion from DB
        /// </summary>
        private static MotivoCancelacionProvider _Instance = null;

        private static ObjectHandle obj;
        /// <summary>
        /// Generates a MotivoCancelacion instance
        /// </summary>
        public static MotivoCancelacionProvider Instance
        {
            get
            {
                if (_Instance == null)
                {
                    obj = Activator.CreateInstance(
                    SoftvSettings.Settings.MotivoCancelacion.Assembly,
                    SoftvSettings.Settings.MotivoCancelacion.DataClass);
                    _Instance = (MotivoCancelacionProvider)obj.Unwrap();
                }
                return _Instance;
            }
        }

        /// <summary>
        /// Provider's default constructor
        /// </summary>
        public MotivoCancelacionProvider()
        {
        }
        /// <summary>
        /// Abstract method to add MotivoCancelacion
        ///  /summary>
        /// <param name="MotivoCancelacion"></param>
        /// <returns></returns>
        public abstract int AddMotivoCancelacion(MotivoCancelacionEntity entity_MotivoCancelacion);

        /// <summary>
        /// Abstract method to delete MotivoCancelacion
        /// </summary>
        public abstract int DeleteMotivoCancelacion(int? Clv_MOTCAN);

        /// <summary>
        /// Abstract method to update MotivoCancelacion
        /// </summary>
        public abstract int EditMotivoCancelacion(MotivoCancelacionEntity entity_MotivoCancelacion);

        /// <summary>
        /// Abstract method to get all MotivoCancelacion
        /// </summary>
        public abstract List<MotivoCancelacionEntity> GetMotivoCancelacion();

        /// <summary>
        /// Abstract method to get all MotivoCancelacion List<int> lid
        /// </summary>
        public abstract List<MotivoCancelacionEntity> GetMotivoCancelacion(List<int> lid);

        /// <summary>
        /// Abstract method to get by id
        /// </summary>
        public abstract MotivoCancelacionEntity GetMotivoCancelacionById(int? Clv_MOTCAN);



        /// <summary>
        ///Get MotivoCancelacion
        ///</summary>
        public abstract SoftvList<MotivoCancelacionEntity> GetPagedList(int pageIndex, int pageSize);

        /// <summary>
        ///Get MotivoCancelacion
        ///</summary>
        public abstract SoftvList<MotivoCancelacionEntity> GetPagedList(int pageIndex, int pageSize, String xml);

        /// <summary>
        /// Converts data from reader to entity
        /// </summary>
        protected virtual MotivoCancelacionEntity GetMotivoCancelacionFromReader(IDataReader reader)
        {
            MotivoCancelacionEntity entity_MotivoCancelacion = null;
            try
            {
                entity_MotivoCancelacion = new MotivoCancelacionEntity();
                entity_MotivoCancelacion.Clv_MOTCAN = (int?)(GetFromReader(reader, "Clv_MOTCAN"));
                entity_MotivoCancelacion.MOTCAN = (String)(GetFromReader(reader, "MOTCAN", IsString: true));

            }
            catch (Exception ex)
            {
                throw new Exception("Error converting MotivoCancelacion data to entity", ex);
            }
            return entity_MotivoCancelacion;
        }

    }

    #region Customs Methods

    #endregion
}

