using System.Collections.ObjectModel; using System.Linq; using System.Threading.Tasks; using Gestor.Application.Helpers; using Gestor.Application.Servicos; using Gestor.Model.Common; using Gestor.Model.Domain.Ferramentas; using Gestor.Model.Domain.Generic; using Gestor.Model.Domain.Seguros; namespace Gestor.Application.ViewModels.Generic; public abstract class BaseTarefaViewModel : BaseSegurosViewModel { private ObservableCollection _responsaveis = new ObservableCollection(); private bool _hasResponsaveis; public TarefaServico Servico { get; set; } public abstract Tarefa SelectedTarefa { get; set; } public abstract bool EnableAlterarTarefa { get; set; } public ObservableCollection Responsaveis { get { return _responsaveis; } set { _responsaveis = value; HasResponsaveis = value != null && value.Count > 0; OnPropertyChanged("Responsaveis"); } } public bool HasResponsaveis { get { return _hasResponsaveis; } set { _hasResponsaveis = value; OnPropertyChanged("HasResponsaveis"); } } public async Task ValidaPermissaoParaEditarTarefa() { bool flag = false; bool flag3; if (SelectedTarefa == null) { BaseTarefaViewModel baseTarefaViewModel = this; BaseTarefaViewModel baseTarefaViewModel2 = this; flag3 = (EnableAlterarTarefa = flag); bool enableAlterar = (baseTarefaViewModel2.EnableExcluir = flag3); baseTarefaViewModel.EnableAlterar = enableAlterar; return flag; } PermissaoUsuario val = await BuscaPermisaoUsuario(); flag = Recursos.Usuario.Administrador || (val == null && !SelectedTarefa.Restrito.GetValueOrDefault()) || ((val == null || val.Alterar) && (!SelectedTarefa.Restrito.GetValueOrDefault() || ((DomainBase)SelectedTarefa.UsuarioCadastro).Id == ((DomainBase)Recursos.Usuario).Id || (SelectedTarefa.Responsaveis?.Any((ResponsavelTarefa x) => ((DomainBase)x.Usuario).Id == ((DomainBase)Recursos.Usuario).Id) ?? false) || ((DomainBase)SelectedTarefa.Usuario).Id == ((DomainBase)Recursos.Usuario).Id)); BaseTarefaViewModel baseTarefaViewModel3 = this; BaseTarefaViewModel baseTarefaViewModel4 = this; bool flag6 = (EnableAlterarTarefa = flag); flag3 = (baseTarefaViewModel4.EnableExcluir = flag6); return baseTarefaViewModel3.EnableAlterar = flag3; } internal async Task BuscaPermisaoUsuario() { return await new PermissaoUsuarioServico().VerificarPermissao(Recursos.Usuario, (TipoTela)38); } public async Task ValidaPermissaoParaExcluirTarefa(Tarefa tarefa = null) { if (tarefa != null) { SelectedTarefa = tarefa; } PermissaoUsuario val = await BuscaPermisaoUsuario(); return Recursos.Usuario.Administrador || (val == null && !SelectedTarefa.Restrito.GetValueOrDefault()) || ((val == null || val.Excluir) && (!SelectedTarefa.Restrito.GetValueOrDefault() || ((DomainBase)SelectedTarefa.UsuarioCadastro).Id == ((DomainBase)Recursos.Usuario).Id || (SelectedTarefa.Responsaveis?.Any((ResponsavelTarefa x) => ((DomainBase)x.Usuario).Id == ((DomainBase)Recursos.Usuario).Id) ?? false) || ((DomainBase)SelectedTarefa.Usuario).Id == ((DomainBase)Recursos.Usuario).Id)); } public void ListaUsuariosResponsaveis() { //IL_0035: Unknown result type (might be due to invalid IL or missing references) //IL_003a: Unknown result type (might be due to invalid IL or missing references) //IL_004b: Unknown result type (might be due to invalid IL or missing references) //IL_0061: Expected O, but got Unknown Tarefa selectedTarefa = SelectedTarefa; if (((selectedTarefa != null) ? selectedTarefa.Usuario : null) != null && !Responsaveis.Any((ResponsavelTarefa r) => ((DomainBase)r.Usuario).Id == ((DomainBase)SelectedTarefa.Usuario).Id)) { Responsaveis.Insert(0, new ResponsavelTarefa { IdTarefa = ((DomainBase)SelectedTarefa).Id, Usuario = SelectedTarefa.Usuario }); } } }