Exemplo n.º 1
0
        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            services.Configure <FondoSettings>(Configuration);

            //The context options could be singleton, not the context instance because each request has a scoped lifetime - atomic transactions)
            var contextOptions = new DbContextOptionsBuilder <FondoContext>().UseSqlServer(Configuration.GetConnectionString("FondoDatabase")).Options;

            services.AddSingleton(contextOptions);



            services.Configure <CookiePolicyOptions>(options =>
            {
                // This lambda determines whether user consent for non-essential cookies is needed for a given request.
                options.CheckConsentNeeded    = context => true;
                options.MinimumSameSitePolicy = SameSiteMode.None;
            });


            services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
            ServiceProvider sp = services.BuildServiceProvider();
            var             repositoryContextOptions = sp.GetService <DbContextOptions <FondoContext> >();

            IConsignacionRepository consignacionRepository = new ConsignacionRepository(repositoryContextOptions);

            services.AddSingleton(consignacionRepository);

            services.AddSingleton <Domain.IPersonaRepository>(provider => new Domain.PersonaRepository(repositoryContextOptions));
            services.AddSingleton <Domain.IPrestamoRepository>(new Domain.PrestamoRepository(repositoryContextOptions));
            services.AddSingleton <Domain.IParametrosRepository>(new Domain.ParametrosRepository(repositoryContextOptions));
        }
Exemplo n.º 2
0
        protected override ValidationResult IsValid(object value, ValidationContext validationContext)
        {
            var    contextOptionsService = (DbContextOptions <FondoContext>)validationContext.GetService(typeof(DbContextOptions <FondoContext>));
            double?valorConsignado       = null;

            if (value != null)
            {
                valorConsignado = Convert.ToDouble(value.ToString());
            }
            else
            {
                PropertyInfo propertyFieldIntereses = validationContext.ObjectType.GetProperty(_fieldInteres);
                double?      fieldInteresValue      = (double?)propertyFieldIntereses.GetValue(validationContext.ObjectInstance, null);
                if (fieldInteresValue.HasValue)
                {
                    return(null);
                }
                else
                {
                    return(new ValidationResult("El valor consignado no es valido"));
                }
            }
            PropertyInfo propertyFieldTipoconsignacion = validationContext.ObjectType.GetProperty(_fieldTipoConsignacion);
            PropertyInfo propertyFieldPersonaId        = validationContext.ObjectType.GetProperty(_fieldPersonaId);

            if (propertyFieldTipoconsignacion == null)
            {
                return(new ValidationResult(string.Format("Property '{0}' is undefined.", _fieldTipoConsignacion)));
            }
            if (propertyFieldPersonaId == null)
            {
                return(new ValidationResult(string.Format("Property '{0}' is undefined.", _fieldPersonaId)));
            }
            byte fieldTipoConsignacionValue = (byte)propertyFieldTipoconsignacion.GetValue(validationContext.ObjectInstance, null);
            int  fieldPersonaIdValue        = (int)propertyFieldPersonaId.GetValue(validationContext.ObjectInstance, null);
            IConsignacionRepository consignacionRepository = new ConsignacionRepository(contextOptionsService);
            IPrestamoRepository     prestamoRepository     = new PrestamoRepository(contextOptionsService);
            var prestamoActivo = prestamoRepository.GetPrestamoActivoPersona(fieldPersonaIdValue);

            if (fieldTipoConsignacionValue == 1 && !consignacionRepository.MontoValido(valorConsignado, prestamoActivo))
            {
                return(new ValidationResult(ErrorMessage));
            }

            return(null);
        }
 public ConsignacionService()
 {
     repository = new ConsignacionRepository();
 }