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(); } }
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(); } } }