summaryrefslogtreecommitdiff
path: root/Decompiler/Gestor.Application.ViewModels.Generic/BaseTarefaViewModel.cs
blob: 8f2eb166ad03263cbfaeceb87c88c18e66d49f62 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
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<ResponsavelTarefa> _responsaveis = new ObservableCollection<ResponsavelTarefa>();

	private bool _hasResponsaveis;

	public TarefaServico Servico { get; set; }

	public abstract Tarefa SelectedTarefa { get; set; }

	public abstract bool EnableAlterarTarefa { get; set; }

	public ObservableCollection<ResponsavelTarefa> 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<bool> 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<PermissaoUsuario> BuscaPermisaoUsuario()
	{
		return await new PermissaoUsuarioServico().VerificarPermissao(Recursos.Usuario, (TipoTela)38);
	}

	public async Task<bool> 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
			});
		}
	}
}