예제 #1
0
        /// <summary>
        /// Permite modificar un registro
        /// </summary>
        /// <param name="registro"></param>
        /// <param name="reglas">Contiene las reglas a validar</param>
        /// <returns></returns>
        public async Task <bool> ModificarAsync(TEntity registro, List <IRegla> reglas)
        {
            foreach (var regla in reglas)
            {
                if (!regla.EsCorrecto())
                {
                    customError = regla.customError;
                    return(false);
                }
            }
            contexto.Entry(registro).State = EntityState.Modified;
            await contexto.SaveChangesAsync();

            return(true);
        }
예제 #2
0
        /// <summary>
        /// Permite agregar un nuevo registro
        /// </summary>
        /// <param name="registro">Registro a agregar</param>
        /// <param name="reglas">Reglas a validar</param>
        /// <returns></returns>
        public async Task <bool> AgregarAsync(TEntity registro, List <IRegla> reglas)
        {
            foreach (var regla in reglas)
            {
                if (!regla.EsCorrecto())
                {
                    customError = regla.customError;
                    return(false);
                }
            }
            contexto.Set <TEntity>().Add(registro);
            await contexto.SaveChangesAsync();

            return(true);
        }
예제 #3
0
        /// <summary>
        /// Permite borrar un registro
        /// </summary>
        /// <param name="id"></param>
        /// <param name="reglas"></param>
        /// <param name="nombreTabla"></param>
        /// <returns></returns>
        public async Task <bool> BorraAsync(int id, List <IRegla> reglas, string nombreTabla)
        {
            foreach (var regla in reglas)
            {
                if (!regla.EsCorrecto())
                {
                    customError = regla.customError;
                    return(false);
                }
            }
            var registro = await ObtenerPorIdAsync(id);

            if (registro == null)
            {
                customError = new CustomError(404, String.Format(this.localizacion.GetLocalizedHtmlString("NotFound"), nombreTabla), "Id");
                return(false);
            }
            contexto.Set <TEntity>().Remove(registro);
            await contexto.SaveChangesAsync();

            return(true);
        }