using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.ComponentModel; using System.Linq; using System.Windows; using CsQuery.ExtensionMethods.Internal; using Gestor.Application.Helpers; using Gestor.Model.Domain.Ferramentas; using Gestor.Model.Domain.Generic; using Gestor.Model.Domain.Seguros; namespace Gestor.Application.ViewModels.Generic; public class DialogTarefaViewModel : BaseSegurosViewModel { private bool _showPublica; private bool _nota; private Visibility _cabecalho; private Visibility _agendamento; private Visibility _status; private List _telefones; private ObservableCollection _usuarios; private Tarefa _tarefa; private DateTime _dataAgendamento = Funcoes.GetNetworkTime(); private DateTime _horaAgendamento = Funcoes.GetNetworkTime(); private ObservableCollection _responsaveis = new ObservableCollection(); private Usuario _selectedUsuario; private bool _isAnotacoes = true; public bool ShowPublica { get { return _showPublica; } set { _showPublica = value; OnPropertyChanged("ShowPublica"); } } public bool Nota { get { return _nota; } set { _nota = value; if (value) { Cabecalho = (Visibility)2; Status = (Visibility)2; } } } public Visibility Cabecalho { get { //IL_0001: Unknown result type (might be due to invalid IL or missing references) return _cabecalho; } set { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_000e: Unknown result type (might be due to invalid IL or missing references) _cabecalho = value; this.MutateVerbose(ref _cabecalho, value, OnRaisePropertyChanged(), "Cabecalho"); } } public Visibility Agendamento { get { //IL_0001: Unknown result type (might be due to invalid IL or missing references) return _agendamento; } set { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_000e: Unknown result type (might be due to invalid IL or missing references) _agendamento = value; this.MutateVerbose(ref _agendamento, value, OnRaisePropertyChanged(), "Agendamento"); } } public Visibility Status { get { //IL_0001: Unknown result type (might be due to invalid IL or missing references) return _status; } set { //IL_0001: Unknown result type (might be due to invalid IL or missing references) //IL_0002: Unknown result type (might be due to invalid IL or missing references) //IL_000e: Unknown result type (might be due to invalid IL or missing references) _status = value; this.MutateVerbose(ref _status, value, OnRaisePropertyChanged(), "Status"); } } public List Telefones { get { return _telefones; } set { _telefones = value; this.MutateVerbose(ref _telefones, value, OnRaisePropertyChanged(), "Telefones"); } } public ObservableCollection Usuarios { get { return _usuarios; } set { _usuarios = value; this.MutateVerbose(ref _usuarios, value, OnRaisePropertyChanged(), "Usuarios"); } } public Tarefa Tarefa { get { return _tarefa; } set { DateTime networkTime = Funcoes.GetNetworkTime(); DataAgendamento = ((value != null) ? value.Agendamento : networkTime); HoraAgendamento = ((value != null) ? value.Agendamento : networkTime); this.MutateVerbose(ref _tarefa, value, OnRaisePropertyChanged(), "Tarefa"); } } public DateTime DataAgendamento { get { return _dataAgendamento; } set { _dataAgendamento = value; if (Tarefa != null) { Tarefa.Agendamento = DateTime.Parse($"{value:d} {Tarefa.Agendamento:T}"); } this.MutateVerbose(ref _dataAgendamento, value, OnRaisePropertyChanged(), "DataAgendamento"); } } public DateTime HoraAgendamento { get { return _horaAgendamento; } set { _horaAgendamento = value; if (Tarefa != null) { Tarefa.Agendamento = DateTime.Parse($"{Tarefa.Agendamento:d} {value:T}"); } this.MutateVerbose(ref _horaAgendamento, value, OnRaisePropertyChanged(), "HoraAgendamento"); } } public ObservableCollection Responsaveis { get { return _responsaveis; } set { _responsaveis = value; OnPropertyChanged("Responsaveis"); } } public Usuario SelectedUsuario { get { return _selectedUsuario; } set { _selectedUsuario = value; OnPropertyChanged("SelectedUsuario"); } } public bool IsAnotacoes { get { return _isAnotacoes; } set { _isAnotacoes = value; OnPropertyChanged("IsAnotacoes"); } } public event PropertyChangedEventHandler RaisePropertyChanged; public DialogTarefaViewModel(Tarefa tarefa, List telefones, bool nota = false, bool agendamento = false) { //IL_00ac: Unknown result type (might be due to invalid IL or missing references) //IL_00b2: Invalid comparison between Unknown and I4 ShowPublica = nota && tarefa.HabilitarPublica; Telefones = telefones; Usuarios = new ObservableCollection((from x in Recursos.Usuarios where (Recursos.Usuario.IdEmpresa == 1 || x.IdEmpresa == Recursos.Usuario.IdEmpresa) && !x.Excluido orderby x.Nome select x).ToList()); Nota = nota; if ((int)tarefa.Entidade == 1) { tarefa.Anotacoes = tarefa.Descricao; tarefa.Descricao = string.Empty; } if (agendamento) { Agendamento = (Visibility)2; } if (tarefa.UsuariosVinculados != null) { ExtensionMethods.AddRange((ICollection)Responsaveis, (IEnumerable)tarefa.UsuariosVinculados); } Responsaveis.ToList().ForEach(delegate(Usuario x) { Usuarios.Remove(((IEnumerable)Usuarios).FirstOrDefault((Func)((Usuario u) => ((DomainBase)u).Id == ((DomainBase)x).Id))); }); Tarefa = tarefa; } private Action OnRaisePropertyChanged() { return delegate(PropertyChangedEventArgs args) { this.RaisePropertyChanged?.Invoke(this, args); }; } public void AdcionarResponsavel() { if (SelectedUsuario != null && !Responsaveis.Any((Usuario x) => x == SelectedUsuario)) { Responsaveis.Add(SelectedUsuario); Tarefa.UsuariosVinculados = Responsaveis.ToList(); Usuarios.Remove(SelectedUsuario); SelectedUsuario = null; } } public void RemoverResponsavel(Usuario selectedUsuario) { if (selectedUsuario != null) { Responsaveis.Remove(selectedUsuario); Tarefa.UsuariosVinculados = Responsaveis.ToList(); Usuarios.Add(selectedUsuario); selectedUsuario = null; } } }