public override void Configure(Container container) { RequestConverters.Add((req, requestDto) => { var encRequest = requestDto as BasicEncryptedMessage; if (encRequest == null) { return(null); } var requestType = Metadata.GetOperationType(encRequest.OperationName); var decryptedJson = RsaUtils.Decrypt(encRequest.EncryptedBody, SecureConfig.PrivateKeyXml); var request = JsonSerializer.DeserializeFromString(decryptedJson, requestType); req.Items["_encrypt"] = encRequest; return(request); }); ResponseConverters.Add((req, response) => { if (!req.Items.ContainsKey("_encrypt")) { return(null); } var encResponse = RsaUtils.Encrypt(response.ToJson(), SecureConfig.PublicKeyXml); return(new BasicEncryptedMessageResponse { OperationName = response.GetType().Name, EncryptedBody = encResponse }); }); }
protected void PopulateArrayFilters() { PreRequestFiltersArray = PreRequestFilters.ToArray(); RequestConvertersArray = RequestConverters.ToArray(); ResponseConvertersArray = ResponseConverters.ToArray(); GlobalRequestFiltersArray = GlobalRequestFilters.ToArray(); GlobalRequestFiltersAsyncArray = GlobalRequestFiltersAsync.ToArray(); GlobalResponseFiltersArray = GlobalResponseFilters.ToArray(); GlobalResponseFiltersAsyncArray = GlobalResponseFiltersAsync.ToArray(); GlobalMessageRequestFiltersArray = GlobalMessageRequestFilters.ToArray(); GlobalMessageRequestFiltersAsyncArray = GlobalMessageRequestFiltersAsync.ToArray(); GlobalMessageResponseFiltersArray = GlobalMessageResponseFilters.ToArray(); RawHttpHandlersArray = RawHttpHandlers.ToArray(); CatchAllHandlersArray = CatchAllHandlers.ToArray(); GatewayRequestFiltersArray = GatewayRequestFilters.ToArray(); GatewayRequestFiltersAsyncArray = GatewayRequestFiltersAsync.ToArray(); GatewayResponseFiltersArray = GatewayResponseFilters.ToArray(); GatewayResponseFiltersAsyncArray = GatewayResponseFiltersAsync.ToArray(); }
public override void Configure(Container container) { SetConfig(new HostConfig { DebugMode = true, HandlerFactoryPath = "gam-api", GlobalResponseHeaders = { { "Access-Control-Allow-Origin", "*" }, { "Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS, PATCH" }, }, DefaultContentType = "json" }); LogManager.LogFactory = new ConsoleLogFactory(debugEnabled: true);; ConfigureRoutes(); RegisterTypedResponseFilter <AuthenticateResponse>((request, response, auth) => { //Console.WriteLine("{0}. {1}. {2}", request, response, auth); }); ResponseConverters.Add((request, response) => { if (response == null || response.GetType() != typeof(AuthenticateResponse) || request.PathInfo.EndsWith("logout")) { return(null); } var resp = response.GetDto <AuthenticateResponse>(); resp.Meta = new System.Collections.Generic.Dictionary <string, string>(); var sesion = request.SessionAs <CustomUserSession>(); var personaConPerfiles = sesion.PersonaConPerfiles; var serializado = JsonSerializer.SerializeToString(personaConPerfiles); resp.Meta.Add("PersonaConPerfiles", serializado); var regionales = sesion.Regionales; serializado = JsonSerializer.SerializeToString(regionales); resp.Meta.Add("Regionales", serializado); var colaboradores = sesion.Colaboradores; serializado = JsonSerializer.SerializeToString(colaboradores); resp.Meta.Add("Colaboradores", serializado); var generos = sesion.Generos; if (generos.Count == 0) { generos.AddRange(new string[] { "Masculino", "Femenino" }); } serializado = JsonSerializer.SerializeToString(generos); resp.Meta.Add("Generos", serializado); var tiposDocumento = sesion.TiposDocumento; if (tiposDocumento.Count == 0) { tiposDocumento.AddRange(new string[] { "CC", "NUIP", "RC", "TI" }); } serializado = JsonSerializer.SerializeToString(tiposDocumento); resp.Meta.Add("TiposDocumento", serializado); var _valores = request.TryResolve <Valores>(); resp.Meta.Add("AlivioEmocionalParametros", JsonSerializer.SerializeToString(_valores.AlivioEmocionalParametros)); return(resp); }); Plugins.Add(new CorsFeature()); Plugins.Add(new SessionFeature()); // TODO : PONER REDIS AQUI! Plugins.Add(new AuthFeature( () => new CustomUserSession(), // new AuthUserSession(), new IAuthProvider[] { new CustomCredentialsAuthProvider() }) { IncludeAssignRoleServices = false }); Plugins.Add(new AutoQueryFeature { MaxLimit = 100, UseNamedConnection = "autoquery" }); Plugins.Add(new ValidationFeature()); var appSettings = new AppSettings(); var valores = new Valores(appSettings); var connectionFactory = MySqlConnectionFactory(appSettings); container.Register <IDbConnectionFactory>(connectionFactory); container.Register <Valores>(valores); container.Register <ICacheClient>(new MemoryCacheClient { FlushOnDispose = false }); container.Register <IUserAuthRepository>(new InMemoryAuthRepository()); container.Register <IProveedorHash>(new ProveedorHashMd5()); container.Register <IAlmacenaEntidad>( c => new AlmacenaEntidad( c.Resolve <IDbConnectionFactory>(), c.Resolve <IAutoQueryDb>(), c.Resolve <ICacheClient>())) .ReusedWithin(ReuseScope.Request); // la misma de autoquery = None. // container.Register <IUsuarioGestorConsultas> (c => new Usuarios(new UsuarioAlmacen(c.Resolve <IAlmacenaEntidad>()), c.Resolve <IProveedorHash>())) .ReusedWithin(ReuseScope.Request); container.Register <IPersonaGestorConsultas> (c => new Personas(new PersonaAlmacen(c.Resolve <IAlmacenaEntidad>()))) .ReusedWithin(ReuseScope.Request); // // Gestor Colaborador container.Register <IColaboradorGestor> (c => new Colaboradores(new ColaboradorAlmacen(c.Resolve <IAlmacenaEntidad>()))) .ReusedWithin(ReuseScope.Request); container.Register <IColaboradorGestorConsultas> (c => c.Resolve <IColaboradorGestor>()) .ReusedWithin(ReuseScope.Request); // // Gestor Regional container.Register <IRegionalGestor> (c => new Regionales(new RegionalAlmacen(c.Resolve <IAlmacenaEntidad>()))) .ReusedWithin(ReuseScope.Request); container.Register <IRegionalGestorConsultas> (c => c.Resolve <IRegionalGestor>()) .ReusedWithin(ReuseScope.Request); // //Gestor GAM container.Register <IGamGestor> (c => new Gams(new GamAlmacen(c.Resolve <IAlmacenaEntidad>())) { Valores = c.Resolve <Valores>() }) .ReusedWithin(ReuseScope.Request); container.Register <IGamGestorConsultas> (c => c.Resolve <IGamGestor>()) .ReusedWithin(ReuseScope.Request); // //Gestor MiembroGam container.Register <IMiembroGamGestor> (c => new MiembrosGam(new MiembroGamAlmacen(c.Resolve <IAlmacenaEntidad>()))) .ReusedWithin(ReuseScope.Request); container.Register <IMiembroGamGestorConsultas> (c => c.Resolve <IMiembroGamGestor>()) .ReusedWithin(ReuseScope.Request); //Gestor EncuestaGam container.Register <IEncuestaGamGestor> (c => new EncuestasGam(new EncuestaGamAlmacen(c.Resolve <IAlmacenaEntidad>())) { Valores = c.Resolve <Valores>() }) .ReusedWithin(ReuseScope.Request); container.Register <IEncuestaGamGestorConsultas> (c => c.Resolve <IEncuestaGamGestor>()) .ReusedWithin(ReuseScope.Request); // // Gestor Respuesta container.Register <IRespuestaEncuestaGamGestor> (c => new RespuestasEncuestaGam(new RespuestaEncuestaGamAlmacen(c.Resolve <IAlmacenaEntidad>()))) .ReusedWithin(ReuseScope.Request); container.Register <IRespuestaEncuestaGamGestorConsultas> (c => c.Resolve <IRespuestaEncuestaGamGestor>()) .ReusedWithin(ReuseScope.Request); // //Gestor PlantillaEncuestaGam container.Register <IPlantillaEncuestaGestor> (c => new PlantillasEncuesta(new PlantillaEncuestaAlmacen(c.Resolve <IAlmacenaEntidad>()))) .ReusedWithin(ReuseScope.Request); container.Register <IPlantillaEncuestaGestorConsultas> (c => c.Resolve <IPlantillaEncuestaGestor>()) .ReusedWithin(ReuseScope.Request); // //Gestor PreguntaPlantillaEncuestaGam container.Register <IPreguntaPlantillaEncuestaGestor> (c => new PreguntasPlantillaEncuesta(new PreguntaPlantillaEncuestaAlmacen(c.Resolve <IAlmacenaEntidad>()))) .ReusedWithin(ReuseScope.Request); container.Register <IPreguntaPlantillaEncuestaGestorConsultas> (c => c.Resolve <IPreguntaPlantillaEncuestaGestor>()) .ReusedWithin(ReuseScope.Request); // //Gestor EventoCalendario container.Register <IEventoCalendarioGestor> (c => new EventosCalendario(new EventoCalendarioAlmacen(c.Resolve <IAlmacenaEntidad>()))) .ReusedWithin(ReuseScope.Request); container.Register <IEventoCalendarioGestorConsultas> (c => c.Resolve <IEventoCalendarioGestor>()) .ReusedWithin(ReuseScope.Request); // //Gestor Soportes container.Register <ISoporteGestor> (c => new Soportes (new SoporteAlmacen(c.Resolve <IAlmacenaEntidad>(), new ArchivoSoporteAlmacen(valores.RutaSoportes)))) .ReusedWithin(ReuseScope.Request); container.Register <ISoporteGestorConsultas> (c => c.Resolve <ISoporteGestor>()) .ReusedWithin(ReuseScope.Request); // container.RegisterValidators(typeof(GamCrearValidador).Assembly); container.Register <GamReglasValidacion> (c => new GamReglasValidacion()) .ReusedWithin(ReuseScope.Request); container.Register <RespuestaEncuestaGamReglasValidacion> (c => new RespuestaEncuestaGamReglasValidacion()) .ReusedWithin(ReuseScope.Request); CrearTablasGam(connectionFactory, valores); }