示例#1
0
        /// <summary>
        /// Saves the current function being edited.
        /// </summary>
        protected override void OnSave()
        {
            EditObject.Sistema     = DAOFactory.SistemaDAO.FindById(Convert.ToInt32(cbSubSistema.SelectedValue));
            EditObject.Descripcion = ddlMenuResource.SelectedValue;
            EditObject.Url         = txtURL.Text.Replace('\\', '/');
            EditObject.Parametros  = txtParametros.Text;
            EditObject.Ref         = txtReferencia.Text;
            EditObject.FechaBaja   = null;
            EditObject.Modulo      = cbGrupo.SelectedValue;

            DAOFactory.FuncionDAO.SaveOrUpdate(EditObject);

            if (Usuario.IdPerfiles.Count == 1 && !Usuario.IdPerfiles.Contains(-1) && !EditMode)
            {
                var perfil = DAOFactory.PerfilDAO.FindById(Usuario.IdPerfiles[0]);

                var movMenu = new MovMenu
                {
                    Alta         = true,
                    Baja         = true,
                    Consulta     = true,
                    Modificacion = true,
                    VerMapa      = true,
                    Perfil       = perfil,
                    Funcion      = EditObject
                };

                perfil.AddFuncion(movMenu);
                DAOFactory.PerfilDAO.SaveOrUpdate(perfil);
            }

            ReloadUserFunctions();
        }
示例#2
0
        public IList <MovMenu> FindMovMenuBySistema(List <int> perfiles)
        {
            MovMenu mv = null;

            var dc = DetachedCriteria.For <MovMenu>()
                     .CreateAlias("Perfil", "p", JoinType.InnerJoin)
                     .CreateAlias("Funcion", "f", JoinType.InnerJoin)
                     .Add(Restrictions.IsNull("p.FechaBaja"))
                     .Add(Restrictions.IsNull("f.FechaBaja"));

            if (perfiles.Any(p => p != -1))
            {
                dc.Add(Restrictions.In("p.Id", perfiles));
            }

            dc.SetProjection(Projections.Property("Id"));

            var projectionList = Projections.ProjectionList().Add(
                Projections.Max(Projections.Cast(NHibernateUtil.Int32, Projections.Property <MovMenu>(c => c.Alta))).WithAlias(() => mv.Alta))
                                 .Add(Projections.Max(Projections.Cast(NHibernateUtil.Int32, Projections.Property <MovMenu>(c => c.Baja))).WithAlias(() => mv.Baja))
                                 .Add(Projections.Max(Projections.Cast(NHibernateUtil.Int32, Projections.Property <MovMenu>(c => c.Consulta))).WithAlias(() => mv.Consulta))
                                 .Add(Projections.Max(Projections.Cast(NHibernateUtil.Int32, Projections.Property <MovMenu>(c => c.Modificacion))).WithAlias(() => mv.Modificacion))
                                 .Add(Projections.Max(Projections.Cast(NHibernateUtil.Int32, Projections.Property <MovMenu>(c => c.VerMapa))).WithAlias(() => mv.VerMapa))
                                 .Add(Projections.Max(Projections.Cast(NHibernateUtil.Int32, Projections.Property <MovMenu>(c => c.Reporte))).WithAlias(() => mv.Reporte))
                                 .Add(Projections.Min(Projections.Property <MovMenu>(c => c.Orden)).WithAlias(() => mv.Orden))
                                 .Add(Projections.Group <MovMenu>(c => c.Funcion).WithAlias(() => mv.Funcion));


            var preresult = Session.CreateCriteria <MovMenu>()
                            .Add(Subqueries.PropertyIn("Id", dc))
                            .SetFetchMode("Funcion", FetchMode.Select)
                            .SetProjection(projectionList);

            var result = preresult.SetResultTransformer(Transformers.AliasToBean <tmpMovMenu>())
                         .List <tmpMovMenu>();

            return(result.Select(m => new MovMenu
            {
                Alta = m.Alta == 1,
                Baja = m.Baja == 1,
                Consulta = m.Consulta == 1,
                Modificacion = m.Modificacion == 1,
                VerMapa = m.VerMapa == 1,
                Reporte = m.Reporte == 1,
                Orden = m.Orden,
                Funcion = m.Funcion
            })
                   .OrderBy(m => m.Funcion.Sistema.Orden)
                   .ThenBy(m => m.Funcion.Sistema.Descripcion)
                   .ThenBy(m => m.Orden)
                   .ThenBy(m => m.Funcion.Descripcion)
                   .ToList());
        }
示例#3
0
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="item">MovMenu item for this module</param>
 public Module(MovMenu item)
 {
     Id             = item.Funcion.Id;
     Name           = item.Funcion.Descripcion;
     RefName        = item.Funcion.Ref;
     Url            = item.Funcion.Url;
     Add            = item.Alta;
     Delete         = item.Baja;
     Edit           = item.Modificacion;
     View           = item.Consulta;
     Report         = item.Reporte;
     GroupId        = item.Funcion.Sistema.Id;
     GroupUrl       = item.Funcion.Sistema.Url;
     Group          = item.Funcion.Sistema.Descripcion;
     GroupOrder     = item.Funcion.Sistema.Orden;
     ModuleOrder    = item.Orden;
     ModuleSubGroup = item.Funcion.Modulo;
     Parameters     = item.Funcion.Parametros;
 }