Esempio n. 1
0
    public override void OnResultExecuted(ResultExecutedContext filterContext)
    {
        HttpSessionStateBase Session = filterContext.HttpContext.Session;

        string NombreUsuario = filterContext.HttpContext.User.Identity.Name;
        string UserID        = filterContext.HttpContext.User.Identity.GetUserId(); //User.Identity.GetUserId();

        FacturaPoliContext     db         = ParseExtensions.GetDatabaseContext(UserID);
        QuickEmisorModel       objEmisor  = PerfilamientoModule.GetEmisorSeleccionado(Session, UserID);
        ClientesContablesModel objCliente = PerfilamientoModule.GetClienteContableSeleccionado(Session, UserID, db);

        MonitoreoModel objMonitoreo;

        if (objCliente == null)
        {
            objMonitoreo = new MonitoreoModel(db, NombreUsuario, objEmisor.RazonSocial, objEmisor.QuickEmisorModelID);
        }
        else
        {
            objMonitoreo = new MonitoreoModel(db, NombreUsuario, objEmisor.RazonSocial, objCliente.RazonSocial, objEmisor.QuickEmisorModelID, objCliente.ClientesContablesModelID);
        }

        RouteData route_data = filterContext.RouteData;

        objMonitoreo.Tiempo_de_ejecucion = (DateTime.Now - tiempo_inicio);
        objMonitoreo.Controlador         = (string)route_data.Values["controller"];
        objMonitoreo.CambiosRealizados   = ((System.Web.HttpRequestWrapper)((System.Web.Mvc.Controller)filterContext.Controller).Request).Form.ToString();
        objMonitoreo.QueryStrings        = ((System.Web.HttpRequestWrapper)((System.Web.Mvc.Controller)filterContext.Controller).Request).QueryString.ToString();

        objMonitoreo.AccionTipo     = Accion;
        objMonitoreo.AccionNombre   = (string)route_data.Values["action"];
        objMonitoreo.Hora_Ejecucion = DateTime.Now;

        db.DBMonitoreo.Add(objMonitoreo);
        db.SaveChanges();

        #region oldnotes

        /*
         * RouteData route_data = filterContext.RouteData;
         * TimeSpan duration = (DateTime.Now - tiempo_inicio);
         * string controller = (string)route_data.Values["controller"];
         *
         * string cambiosRealizados =((System.Web.HttpRequestWrapper)((System.Web.Mvc.Controller)filterContext.Controller).Request).Form.ToString();
         * string queryStrings = ((System.Web.HttpRequestWrapper)((System.Web.Mvc.Controller)filterContext.Controller).Request).QueryString.ToString();
         *
         * string[] cambiosRealizadosArray = cambiosRealizados.Split('&');
         *
         * string action = (string)route_data.Values["action"];
         *
         * DateTime hora_Ejecucion = DateTime.Now;
         */
        #endregion
    }
    public override void OnAuthorization(AuthorizationContext filterContext)
    {
        //Obtiene el privilegio minimo requerido del parametro expuesto al interno
        PrivilegioMin = PrivilegioMinimoRequerido;

        string UserID  = filterContext.HttpContext.User.Identity.GetUserId();
        var    Session = filterContext.HttpContext.Session;

        FacturaPoliContext db = ParseExtensions.GetDatabaseContext(UserID);

        //rescata usuario
        UsuarioModel objUsuario = db.DBUsuarios.SingleOrDefault(r => r.IdentityID == UserID);

        if (objUsuario == null)
        {
            /*REDIRECT A EL PANEL DE SELECCION DE EMISOR*/
            filterContext.Result = RetornarSeleccionEmisor();
            return;
        }

        QuickEmisorModel objEmisor = PerfilamientoModule.GetEmisorSeleccionado(Session, UserID);

        if (objEmisor == null)
        {
            /*REDIRECT A EL PANEL DE SELECCION DE EMISOR*/
            filterContext.Result = RetornarSeleccionEmisor();
            return;
        }

        //Revisar su tabla de compañias autorizadas
        EmisoresHabilitados objEmisorHabilitado = db.DBEmisoresHabilitados.SingleOrDefault(r => r.QuickEmisorModelID == objEmisor.QuickEmisorModelID && r.UsuarioModelID == objUsuario.UsuarioModelID);

        if (objEmisorHabilitado == null)
        {
            /*REDIRECT A EL PANEL DE SELECCION DE EMISOR*/
            filterContext.Result = RetornarSeleccionEmisor();
            return;
        }

        Privilegios PrivilegioDelUsuario = objEmisorHabilitado.privilegiosAcceso;
        bool        EstaAutorizado       = ManejarPrivilegios(PrivilegioMin, PrivilegioDelUsuario);

        if (EstaAutorizado == false)
        {
            /*REDIRECT A EL PANEL DE SELECCION DE EMISOR*/
            filterContext.Result = RetornarSeleccionEmisor();
            return;
        }
    }