コード例 #1
0
        /// <summary>
        /// Obtiene la entidad BienAlquiler de una entidad request
        /// </summary>
        /// <param name="objRqst">objeto request bienAlquiler</param>
        /// <returns>Entidad de objeto Bien Alquiler</returns>
        public static BienAlquilerEntity ObtenerBienAlquilerEntityDeRequest(BienAlquilerRequest objRqst)
        {
            BienAlquilerEntity rpta             = new BienAlquilerEntity();
            NumberFormatInfo   numberFormatInfo = new NumberFormatInfo();

            numberFormatInfo.NumberDecimalSeparator = ".";
            numberFormatInfo.NumberGroupSeparator   = ",";

            if (objRqst.CodigoBienAlquiler == null)
            {
                objRqst.CodigoBienAlquiler = Guid.Empty;
            }
            if (objRqst.CodigoBien == null)
            {
                objRqst.CodigoBien = Guid.Empty;
            }
            rpta.CodigoBienAlquiler = (Guid)objRqst.CodigoBienAlquiler;
            rpta.CodigoBien         = (Guid)objRqst.CodigoBien;
            rpta.IndicadorSinLimite = objRqst.IndicadorSinLimite;
            if (!rpta.IndicadorSinLimite)
            {
                rpta.CantidadLimite = Decimal.Parse(objRqst.CantidadLimiteString, numberFormatInfo);
            }

            rpta.Monto = Decimal.Parse(objRqst.MontoString, numberFormatInfo);
            return(rpta);
        }
コード例 #2
0
ファイル: BienService.cs プロジェクト: mkbiltek2019/STRACON
        /// <summary>
        /// Método que registra y/o Edita un Bien Alquiler
        /// </summary>
        /// <param name="objRqst">objeto request del tipo BienAlquiler</param>
        /// <returns>Retorna entero, 1 si transacción satisfactoria y -1 si hubo Error.</returns>
        public ProcessResult <Object> RegistraEditaBienAlquiler(BienAlquilerRequest objRqst)
        {
            ProcessResult <Object>   rpta = new ProcessResult <Object>();
            BienAlquilerEntity       entidad = BienAdapter.ObtenerBienAlquilerEntityDeRequest(objRqst);
            List <BienAlquilerLogic> listaAux = new List <BienAlquilerLogic>();
            int existeSinLimite = 0, existeCantidadHora = 0;

            listaAux = bienLogicRepository.ListaBienAlquiler((Guid)objRqst.CodigoBien);
            /*Verificamos si existe ya un registro con Limite.*/
            if (entidad.IndicadorSinLimite)
            {
                var listaBienAlquiler = listaAux.FindAll(x => x.IndicadorSinLimite == true).ToList();
                if (listaBienAlquiler.Count > 0)
                {
                    if (entidad.CodigoBienAlquiler == Guid.Empty)//es nu nuevo registro y ya existe uno con Indicador.
                    {
                        existeSinLimite = 1;
                    }
                    else
                    {
                        if (listaBienAlquiler[0].CodigoBienAlquiler != entidad.CodigoBienAlquiler)
                        {
                            existeSinLimite = 1;
                        }
                    }
                }
            }
            if (entidad.CantidadLimite > 0)
            {
                var listaBienAlquiler = listaAux.FindAll(x => x.CantidadLimite == entidad.CantidadLimite).ToList();
                if (listaBienAlquiler != null && listaBienAlquiler.Count > 0)
                {
                    if (entidad.CodigoBienAlquiler == Guid.Empty)//es nu nuevo registro y ya existe uno con esa Cantidad.
                    {
                        existeCantidadHora = 1;
                    }
                    else
                    {
                        if (listaBienAlquiler[0].CodigoBienAlquiler != entidad.CodigoBienAlquiler)
                        {
                            existeCantidadHora = 1;
                        }
                    }
                }
            }

            if (existeSinLimite > 0)
            {
                rpta.Result    = "Sólo puede existir un registro con el indicador Sin Límite, verifique..";
                rpta.IsSuccess = false;
                return(rpta);
            }
            if (existeCantidadHora > 0)
            {
                rpta.Result    = "No puede ingresar cantidad de horas duplicadas, verifique.";
                rpta.IsSuccess = false;
                return(rpta);
            }
            try
            {
                if (entidad.CodigoBienAlquiler == Guid.Empty)
                {
                    entidad.CodigoBienAlquiler = Guid.NewGuid();
                    bienAlquilerRepository.Insertar(entidad);
                }
                else
                {
                    var entidadUpdate = bienAlquilerRepository.GetById(entidad.CodigoBienAlquiler);
                    entidadUpdate.CodigoBien         = entidad.CodigoBien;
                    entidadUpdate.IndicadorSinLimite = entidad.IndicadorSinLimite;
                    entidadUpdate.CantidadLimite     = entidad.CantidadLimite;
                    entidadUpdate.Monto = entidad.Monto;
                    bienAlquilerRepository.Editar(entidadUpdate);
                }
                rpta.Result = bienAlquilerRepository.GuardarCambios();
            }
            catch (Exception ex)
            {
                rpta.IsSuccess = false;
                rpta.Exception = new ApplicationLayerException <BienService>(ex);
            }
            return(rpta);
        }