示例#1
0
        /// <summary>
        /// Obtiene un StackPanel que para mostrar las
        /// pantallas pertenencientes al Catalogo
        /// </summary>
        /// <param name="indexFormularios"></param>
        /// <param name="descripcion"></param>
        /// <param name="acceso"></param>
        /// <returns></returns>
        private StackPanel ObtenerPanelItem(int indexFormularios, string descripcion, AccesoInfo acceso)
        {
            var chkLectura = new CheckBox {
                HorizontalAlignment = HorizontalAlignment.Stretch
            };
            var chkEscritura = new CheckBox {
                HorizontalAlignment = HorizontalAlignment.Stretch
            };
            var bindLectura = new Binding("AccesoId")
            {
                Mode = BindingMode.TwoWay,
                UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged,
                Source             = acceso,
                Converter          = new LecturaValueConverter(),
                ConverterParameter = 0
            };

            chkLectura.SetBinding(CheckBox.IsCheckedProperty, bindLectura);
            var bindEscritura = new Binding("AccesoId")
            {
                Mode = BindingMode.TwoWay,
                UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged,
                Source             = acceso,
                Converter          = new EscrituraValueConverter(),
                ConverterParameter = 0
            };

            chkEscritura.SetBinding(CheckBox.IsCheckedProperty, bindEscritura);

            Brush colorItem;

            if (indexFormularios % 2 == 0)
            {
                colorItem = new SolidColorBrush(Colors.LavenderBlush);
            }
            else
            {
                colorItem = new SolidColorBrush(Colors.White);
            }

            var grdDetalles = new Grid();

            grdDetalles.SetValue(Grid.BackgroundProperty, colorItem);
            var columnaDescripcion = new ColumnDefinition {
                Width = new GridLength(300)
            };
            var columnaLectura = new ColumnDefinition {
                Width = new GridLength(150)
            };
            var columnaEscritura = new ColumnDefinition {
                Width = new GridLength(150)
            };

            grdDetalles.ColumnDefinitions.Add(columnaDescripcion);
            grdDetalles.ColumnDefinitions.Add(columnaLectura);
            grdDetalles.ColumnDefinitions.Add(columnaEscritura);

            var row = new RowDefinition {
                Height = new GridLength(20)
            };

            grdDetalles.RowDefinitions.Add(row);

            var lbl = new Label
            {
                Content = descripcion,
            };

            Grid.SetColumn(lbl, 0);
            Grid.SetRow(lbl, 0);

            Grid.SetColumn(chkLectura, 1);
            Grid.SetRow(chkLectura, 0);

            Grid.SetColumn(chkEscritura, 2);
            Grid.SetRow(chkEscritura, 0);

            grdDetalles.Children.Add(lbl);
            grdDetalles.Children.Add(chkLectura);
            grdDetalles.Children.Add(chkEscritura);

            var stack = new StackPanel
            {
                HorizontalAlignment = HorizontalAlignment.Center,
                Width = 540,
            };

            stack.Children.Add(grdDetalles);

            return(stack);
        }
 /// <summary>
 /// Obtiene una entidad de GrupoFormulario por su GrupoID
 /// </summary>
 /// <param name="ds"></param>
 /// <returns></returns>
 internal static GrupoFormularioInfo ObtenerPorGrupoID(DataSet ds)
 {
     try
     {
         Logger.Info();
         DataTable           dtGrupo      = ds.Tables[ConstantesDAL.DtGrupo];
         DataTable           dtFormulario = ds.Tables[ConstantesDAL.DtFormulario];
         GrupoFormularioInfo resultado    =
             (from grupo in dtGrupo.AsEnumerable()
              select
              new GrupoFormularioInfo
         {
             Grupo =
                 new GrupoInfo
             {
                 GrupoID = grupo.Field <int>("GrupoID"),
                 Descripcion = grupo.Field <string>("Grupo"),
                 Activo = grupo.Field <bool>("Activo").BoolAEnum(),
             },
         }).FirstOrDefault();
         if (resultado == null)
         {
             resultado = new GrupoFormularioInfo();
         }
         resultado.ListaFormulario = (from pantallas in dtFormulario.AsEnumerable()
                                      select new FormularioInfo
         {
             FormularioID =
                 pantallas.Field <int>("FormularioID"),
             Descripcion =
                 pantallas.Field <string>("Formulario"),
             Modulo = new ModuloInfo
             {
                 ModuloID =
                     pantallas.Field <int>(
                         "ModuloID"),
                 Descripcion =
                     pantallas.Field
                     <string>("Modulo"),
             },
         }).ToList();
         List <FormularioInfo> accesos = (from acceso in ds.Tables[ConstantesDAL.DtAcceso].AsEnumerable()
                                          select new FormularioInfo
         {
             FormularioID = acceso.Field <int>("FormularioID"),
             Acceso = new AccesoInfo
             {
                 AccesoId =
                     acceso.Field <int>("AccesoID")
             },
         }).ToList();
         resultado.ListaFormulario.ForEach(formulario =>
         {
             AccesoInfo accesoInfo =
                 accesos.Where(
                     ac => ac.FormularioID ==
                     formulario.FormularioID).Select(
                     ac => ac.Acceso).FirstOrDefault();
             if (accesoInfo == null)
             {
                 accesoInfo = new AccesoInfo();
             }
             formulario.Acceso = accesoInfo;
         });
         return(resultado);
     }
     catch (Exception ex)
     {
         Logger.Error(ex);
         throw new ExcepcionDesconocida(MethodBase.GetCurrentMethod(), ex);
     }
 }