public UnitOfWork(DTOSessionUsuario _sess)
 {
     sess = _sess;
     if (this.context == null)
     {
         this.context = new BaseDbContext();
     }
 }
Example #2
0
        public JsonResult DatosSession()
        {
            DTOSessionUsuario session = (DTOSessionUsuario)MSession.ReturnSessionObject();

            try
            {
                session             = (DTOSessionUsuario)MSession.ReturnSessionObject();
                Response.StatusCode = (int)HttpStatusCode.OK;
            }
            catch (Exception ex)
            {
                Response.StatusCode        = (int)HttpStatusCode.InternalServerError;
                Response.StatusDescription = ex.Message.Replace("\r", "").Replace("\n", "").Replace("\t", "").Replace("\v", "").Replace("\f", "").ToString();
            }

            return(new JsonResult {
                JsonRequestBehavior = JsonRequestBehavior.AllowGet, Data = session
            });
        }
Example #3
0
        public DTORespuesta ValidaLogin(DTOLogin login)
        {
            DTORespuesta respuesta = modelo.ValidaLogin(login);

            if ((bool)respuesta.Resultado)
            {
                DTOUsuario user = mapper.Map <DTOUsuario, DTOUsuario>((DTOUsuario)respuesta.Elemento);

                DTOSessionUsuario sess = new DTOSessionUsuario();
                sess.Usuario         = mapper.Map <DTOUsuario, DTOUsuario>(user);
                sess.Funcionalidades = mFuncionalidad.GetFuncionalidadesByLogin(login.USU_USERNAME);

                UrlHelper url = new UrlHelper(System.Web.HttpContext.Current.Request.RequestContext);

                RegisterSession(sess);
            }

            return(respuesta);
        }
Example #4
0
        public async Task <ActionResult> Login(DTOLogin user)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    if (string.IsNullOrWhiteSpace(user.USU_USERNAME) || string.IsNullOrWhiteSpace(user.USU_PASS))
                    {
                        return(RedirectToAction("Index", "Login"));
                    }

                    MSession     modelo    = new MSession();
                    DTORespuesta respuesta = modelo.ValidaLogin(user);

                    if ((bool)respuesta.Resultado)
                    {
                        DTOSessionUsuario sess = (DTOSessionUsuario)MSession.ReturnSessionObject();
                        sess.Usuario = await modeloLogin.UpdateUsuario(sess.Usuario);

                        //TODO: Eliminar los archivos asociados al usuario. (Async)
                        mFile = new MFile();
                        await mFile.eliminarArchivosByLoginAsync(sess.Usuario.USU_LOGIN);

                        return(RedirectToAction("Index", "Home"));
                    }
                    else
                    {
                        Session["ResultadoAccesoLogin"] = respuesta;
                        return(RedirectToAction("Index", "Login"));
                    }
                }
                else
                {
                    return(RedirectToAction("Index", "Login"));
                }
            }
            catch (Exception ex)
            {
                return(RedirectToAction("Index", "Login"));
            }
        }
Example #5
0
        public override void OnAuthorization(AuthorizationContext filterContext)
        {
            DTOSessionUsuario sess = (DTOSessionUsuario)MSession.ReturnSessionObject();

            string controlador = filterContext.ActionDescriptor.ControllerDescriptor.ControllerName;
            string accion      = filterContext.ActionDescriptor.ActionName;

            if (sess == null)
            {
                if (!MSession.isAjaxCall())
                {
                    filterContext.Result = new RedirectResult(filterContext.HttpContext.Request.ApplicationPath);
                }
                else
                {
                    filterContext.Result = new HttpUnauthorizedResult();
                    filterContext.Result = new HttpUnauthorizedResult();
                }
            }
            else
            {
                sess.llamada = controlador + "/" + accion;
                if (sess.Funcionalidades.FindAll(x => x.FUN_CONTROLLER.ToUpper() == controlador.ToUpper() && x.FUN_ACTION.ToUpper() == accion.ToUpper()).Count == 0)
                {
                    if (sess.Funcionalidades.FindAll(x => x.FUN_CONTROLLER.ToUpper() == controlador.ToUpper() && (x.FUN_ACTION == "" || accion.ToUpper().Contains("EXCEL") || accion.ToUpper().Contains("CSV") || accion.ToUpper().Contains("PDF") || accion.ToUpper().Contains("DETALLE") || accion.ToUpper().Contains("PNG"))).Count == 0)
                    {
                        if ((controlador.ToUpper() != "MODIFICARACCESO" && controlador.ToUpper() != "IMAGEN"))
                        {
                            if (!MSession.isAjaxCall())
                            {
                                MSession.FreeSession();
                                filterContext.Result = new RedirectResult(filterContext.HttpContext.Request.ApplicationPath);
                            }
                        }
                    }
                }
            }
        }
        //public override int SaveChanges()
        //{
        //    Auditar(new DTOSessionUsuario());
        //    return base.SaveChanges();
        //}

        private void Auditar(DTOSessionUsuario _sess)
        {
            var modifiedEntries = ChangeTracker.Entries().Where(x => x.Entity is IAuditable && (x.State == System.Data.Entity.EntityState.Added ||
                                                                                                x.State == System.Data.Entity.EntityState.Modified || x.State == System.Data.Entity.EntityState.Deleted));

            foreach (var entry in modifiedEntries)
            {
                IAuditable entity = entry.Entity as IAuditable;
                if (entity != null)
                {
                    Log log = new Log()
                    {
                        USU_ID        = (int)_sess.Usuario.USU_ID,
                        LOG_FECHA     = DateTime.Now,
                        LOG_LLAMADA   = _sess.llamada,
                        LOG_OPERACION = (entry.State == EntityState.Added) ? "insercion" : ((entry.State == EntityState.Modified) ? "modificacion" : "eliminacion"),
                        LOG_DATOS     = JsonConvert.SerializeObject(entry.Entity, Formatting.Indented)
                    };

                    this.Set <Log>().Add(log);
                }
            }
        }
 public Task <int> SaveChangesAsync(DTOSessionUsuario _sess)
 {
     Auditar(_sess);
     return(base.SaveChangesAsync());
 }
Example #8
0
 private static void RegisterSession(DTOSessionUsuario sess)
 {
     System.Web.HttpContext.Current.Session["UsuarioSess"] = sess;
 }