public AdministracionWCF() { unityContainer = new UnityContainer(); string connString = WebConfigurationManager.ConnectionStrings["LeandroContext"].ConnectionString; unityContainer.RegisterInstance("conectionString", connString, new ContainerControlledLifetimeManager()); unityContainer.RegisterType <IDbContext, LeandroContext>(new InjectionConstructor(new ResolvedParameter <string>("conectionString"))); unityContainer.RegisterType <ICorreoService, CorreoService>(new InjectionConstructor(appSettings["smtpEmailHost"], appSettings["smtpEmailPort"], appSettings["smtpEmailAccount"], appSettings["smtpEmailPass"], appSettings["smtpSSLHost"])); unityContainer.RegisterType <IServerMailService, ServerMailService>(new InjectionConstructor(appSettings["pop3EmailHost"], appSettings["pop3EmailPort"])); unityContainer.RegisterType <IFacturacionService, FacturacionService>(); unityContainer.RegisterType <IMantenimientoService, MantenimientoService>(); unityContainer.RegisterType <IReporteService, ReporteService>(); servicioEnvioCorreo = unityContainer.Resolve <ICorreoService>(); servicioRecepcionCorreo = unityContainer.Resolve <IServerMailService>(); servicioFacturacion = unityContainer.Resolve <IFacturacionService>(); servicioMantenimiento = unityContainer.Resolve <IMantenimientoService>(); servicioReportes = unityContainer.Resolve <IReporteService>(); }
public object AfterReceiveRequest(ref Message request, IClientChannel channel, InstanceContext instanceContext) { try { if (!request.Properties["Via"].ToString().Contains("AdministracionWCF.svc")) { servicioMantenimiento = unityContainer.Resolve <IMantenimientoService>(); bool modoMantenimiento = servicioMantenimiento.EnModoMantenimiento(); if (modoMantenimiento) { throw new Exception("El sistema se encuentra en modo mantenimiento y no es posible procesar su solicitud."); } } string strOperacion = request.Properties["HttpOperationName"].ToString(); if (!new string[] { "", "ObtenerUltimaVersionMobileApp", "ObtenerUltimaVersionApp", "DescargarActualizacion", "LimpiarRegistrosInvalidos", "ProcesarDocumentosElectronicosPendientes", "ValidarCredencialesAdmin", "ValidarCredenciales", "ObtenerListadoEmpresasAdministrador", "ObtenerListadoEmpresasPorTerminal", "ObtenerListadoTerminalesDisponibles", "RegistrarTerminal" }.Contains(strOperacion)) { IncomingWebRequestContext incomingRequest = WebOperationContext.Current.IncomingRequest; WebHeaderCollection headers = incomingRequest.Headers; string strToken = headers["Authorization"]; if (strToken == null) { throw new Exception("La sessión del usuario no es válida. Debe reiniciar su sesión."); } strToken = strToken.Substring(7); servicioMantenimiento = unityContainer.Resolve <IMantenimientoService>(); servicioMantenimiento.ValidarRegistroAutenticacion(strToken, StaticRolePorUsuario.USUARIO_SISTEMA); } var httpRequest = (HttpRequestMessageProperty)request.Properties[HttpRequestMessageProperty.Name]; return(new { origin = httpRequest.Headers["Origin"], handlePreflight = httpRequest.Method.Equals("OPTIONS", StringComparison.InvariantCultureIgnoreCase) }); } catch (Exception ex) { throw new WebFaultException <string>(ex.Message, HttpStatusCode.InternalServerError); } }
public MantenimientoController(IMantenimientoService MantenimientoService) { _MantenimientoService = MantenimientoService; }