Пример #1
0
        private async void AnadirTipoUsuario()
        {
            var formTipoUsuarioViewModel = new FormTipoUsuarioViewModel();
            var formTipoUsuario          = new FormTipoUsuario()
            {
                DataContext = formTipoUsuarioViewModel
            };

            if ((bool)await DialogHost.Show(formTipoUsuario, "RootDialog"))
            {
                var tipoUsuario = new TipoUsuario()
                {
                    Nombre      = formTipoUsuarioViewModel.Nombre,
                    Descripcion = formTipoUsuarioViewModel.Descripcion
                };
                context.TiposUsuarios.Add(tipoUsuario);

                // A cada permiso se le asigna el tipo de usuario
                var permisos = formTipoUsuarioViewModel.Permisos.ToList();
                permisos.ForEach(p => p.TipoUsuario = tipoUsuario);
                context.Permisos.AddRange(permisos);

                context.SaveChanges();
                CargarTiposUsuarios();
            }
        }
Пример #2
0
        private async void ModificarTipoUsuario()
        {
            if (TipoUsuarioSeleccionado.TipoUsuarioId == 1)
            {
                await DialogHost.Show(new MensajeInformacion()
                {
                    Mensaje = "Este tipo de usuario no puede modificarse.",
                }, "RootDialog");
            }
            else
            {
                var formTipoUsuarioViewModel = new FormTipoUsuarioViewModel(TipoUsuarioSeleccionado, context);
                var formTipoUsuario          = new FormTipoUsuario()
                {
                    DataContext = formTipoUsuarioViewModel
                };
                if ((bool)await DialogHost.Show(formTipoUsuario, "RootDialog"))
                {
                    TipoUsuarioSeleccionado.Nombre      = formTipoUsuarioViewModel.Nombre;
                    TipoUsuarioSeleccionado.Descripcion = formTipoUsuarioViewModel.Descripcion;

                    // A cada permiso se le asigna el tipo de usuario
                    var permisos = formTipoUsuarioViewModel.Permisos.ToList();
                    permisos.ForEach(p => p.TipoUsuario = TipoUsuarioSeleccionado);

                    var permisosAntiguos = TipoUsuarioSeleccionado.Permisos.ToList();
                    var permisosAnadidos = permisos.Except(permisosAntiguos).ToList();
                    var permisosBorrados = permisosAntiguos.Except(permisos).ToList();

                    permisosBorrados.ForEach(x => context.Entry(x).State = EntityState.Deleted);
                    permisosAnadidos.ForEach(x => context.Entry(x).State = EntityState.Added);

                    context.SaveChanges();
                    CargarTiposUsuarios();
                }
            }
        }