コード例 #1
0
        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
                });
            });
        }
コード例 #2
0
 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();
 }
コード例 #3
0
        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);
        }