// 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)); }
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(); }