/// <summary>
        /// Metodo para importar archivo de excel
        /// </summary>
        /// <param name="configuracionImportar"></param>
        /// <returns></returns>
        internal bool ImportarArchivo(ConfiguracionFormulaInfo configuracionImportar)
        {
            bool importarArchivo;

            try
            {
                Logger.Info();
                var configuracionFormulaDAL = new ConfiguracionFormulaDAL();

                //Transformar archivo Excel a List<ConfiguracionFormulaInfo>
                IList <ConfiguracionFormulaInfo> listaConfiguracionImportar =
                    TransformarArchivo(configuracionImportar.NombreArchivo);

                if (listaConfiguracionImportar.Any())
                {
                    // Se inicia la transaccion
                    using (var transaction = new TransactionScope())
                    {
                        //Se manda a inactivar la configuracion anterior
                        configuracionFormulaDAL.InactivarConfiguracionAnterior(configuracionImportar);

                        foreach (var configuracion in listaConfiguracionImportar)
                        {
                            //Se manda a almacenar la configuracion
                            configuracionFormulaDAL.GuardarConfiguracionFormula(configuracion, configuracionImportar);
                        }
                        transaction.Complete();
                        importarArchivo = true;
                    }
                }
                else
                {
                    // No trae registros el EXCEL
                    throw new ExcepcionDesconocida(
                              ResourceServices.ConfigurarFormula_ArchivoNoContieneRegistros);
                }
            }
            catch (ExcepcionGenerica)
            {
                throw;
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
            }
            return(importarArchivo);
        }
        /// <summary>
        /// Metodo para exportar la configuracion de formulas de una organizacion
        /// </summary>
        /// <param name="configuracionFormulaExportar"></param>
        /// <returns></returns>
        public bool ExportarArchivo(ConfiguracionFormulaInfo configuracionFormulaExportar)
        {
            bool importarArchivo = false;

            try
            {
                Logger.Info();
                var configuracionFormulaDAL = new ConfiguracionFormulaDAL();
                var formulaBL = new FormulaBL();

                IList <ConfiguracionFormulaInfo> configuracionFormulaInfoLista =
                    configuracionFormulaDAL.ObtenerConfiguracionFormula(configuracionFormulaExportar.OrganizacionID);

                if (configuracionFormulaInfoLista != null)
                {
                    // Se inicia la transaccion
                    using (var transaction = new TransactionScope())
                    {
                        //Se obtiene info separada
                        foreach (var configuracion in configuracionFormulaInfoLista)
                        {
                            //Se obtienen las descripciones de las formulas
                            configuracion.Formula = formulaBL.ObtenerPorID(configuracion.Formula.FormulaId);
                            //Se obtienen las descripciones de las formulas
                            configuracion.FormulaSiguiente = formulaBL.ObtenerPorID(configuracion.FormulaSiguiente.FormulaId);
                        }
                        transaction.Complete();
                    }
                }

                //Se genera el archivo excel pero con solo los titulos
                importarArchivo = GenerarArchivo(configuracionFormulaInfoLista, configuracionFormulaExportar);
            }
            catch (ExcepcionGenerica)
            {
                throw;
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
            }
            return(importarArchivo);
        }
        internal List <ConfiguracionFormulaInfo> ObtenerFormulaPorTipoGanado(TipoGanadoInfo tipoGanadoIn, int organizacionID)
        {
            List <ConfiguracionFormulaInfo> result;

            try
            {
                Logger.Info();
                var configuracionFormulaDAL = new ConfiguracionFormulaDAL();
                result = configuracionFormulaDAL.ObtenerFormulaPorTipoGanado(tipoGanadoIn, organizacionID);
            }
            catch (ExcepcionGenerica)
            {
                throw;
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
            }
            return(result);
        }
        /// <summary>
        /// Obtener la configuracion de las formulas para una organizacion
        /// </summary>
        /// <param name="organizacionID"></param>
        /// <returns></returns>
        public IList <ConfiguracionFormulaInfo> ObtenerConfiguracionFormula(int organizacionID)
        {
            IList <ConfiguracionFormulaInfo> lista;

            try
            {
                Logger.Info();
                var configuracionFormulaDAL = new ConfiguracionFormulaDAL();
                lista = configuracionFormulaDAL.ObtenerConfiguracionFormula(organizacionID);
            }
            catch (ExcepcionGenerica)
            {
                throw;
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
            }
            return(lista);
        }