summaryrefslogtreecommitdiff
path: root/Decompiler/Gestor.Application.ViewModels.Drawer/VinculoVendedorViewModel.cs
diff options
context:
space:
mode:
authorLucas Faria Mendes <lucas.fariamo08@gmail.com>2026-03-30 15:29:41 +0000
committerLucas Faria Mendes <lucas.fariamo08@gmail.com>2026-03-30 15:29:41 +0000
commit225aa1499e37faf9d38257caabbadc68d78b427e (patch)
tree102bb7a40c58595348ae9d3c7076201759fe0720 /Decompiler/Gestor.Application.ViewModels.Drawer/VinculoVendedorViewModel.cs
parent1f4e14b2e973ee7de337fd4866d9a5ceff5cb6d1 (diff)
downloadgestor-225aa1499e37faf9d38257caabbadc68d78b427e.tar.gz
gestor-225aa1499e37faf9d38257caabbadc68d78b427e.zip
decompiler.com
Diffstat (limited to 'Decompiler/Gestor.Application.ViewModels.Drawer/VinculoVendedorViewModel.cs')
-rw-r--r--Decompiler/Gestor.Application.ViewModels.Drawer/VinculoVendedorViewModel.cs258
1 files changed, 258 insertions, 0 deletions
diff --git a/Decompiler/Gestor.Application.ViewModels.Drawer/VinculoVendedorViewModel.cs b/Decompiler/Gestor.Application.ViewModels.Drawer/VinculoVendedorViewModel.cs
new file mode 100644
index 0000000..849ec7f
--- /dev/null
+++ b/Decompiler/Gestor.Application.ViewModels.Drawer/VinculoVendedorViewModel.cs
@@ -0,0 +1,258 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Net;
+using System.Net.Sockets;
+using System.Threading.Tasks;
+using Gestor.Application.Helpers;
+using Gestor.Application.Servicos;
+using Gestor.Application.Servicos.Ferramentas;
+using Gestor.Application.ViewModels.Generic;
+using Gestor.Common.Validation;
+using Gestor.Infrastructure.UnitOfWork.Generic;
+using Gestor.Infrastructure.UnitOfWork.Logic;
+using Gestor.Model.Common;
+using Gestor.Model.Domain.Common;
+using Gestor.Model.Domain.Generic;
+using Gestor.Model.Domain.Seguros;
+using Newtonsoft.Json;
+
+namespace Gestor.Application.ViewModels.Drawer;
+
+public class VinculoVendedorViewModel : BaseSegurosViewModel
+{
+ private readonly VendedorUsuarioServico _servicoVendedorUsuario;
+
+ private readonly VendedorServico _servicoVendedor;
+
+ public readonly Usuario SelectedUsuario;
+
+ private bool _isVisibleVinculado;
+
+ private bool _enableAlterarVinculo;
+
+ private bool _isVisibleVendedor = true;
+
+ private List<VinculoVendedor> _vinculado;
+
+ private List<VinculoVendedor> _vinculadoFiltro;
+
+ private List<VinculoVendedor> _vendedor;
+
+ private List<VinculoVendedor> _vendedorFiltro;
+
+ public bool IsVisibleVinculado
+ {
+ get
+ {
+ return _isVisibleVinculado;
+ }
+ set
+ {
+ _isVisibleVinculado = value;
+ OnPropertyChanged("IsVisibleVinculado");
+ }
+ }
+
+ public bool EnableAlterarVinculo
+ {
+ get
+ {
+ return _enableAlterarVinculo;
+ }
+ set
+ {
+ _enableAlterarVinculo = value;
+ OnPropertyChanged("EnableAlterarVinculo");
+ }
+ }
+
+ public bool IsVisibleVendedor
+ {
+ get
+ {
+ return _isVisibleVendedor;
+ }
+ set
+ {
+ _isVisibleVendedor = value;
+ OnPropertyChanged("IsVisibleVendedor");
+ }
+ }
+
+ public List<VinculoVendedor> Vinculado
+ {
+ get
+ {
+ return _vinculado;
+ }
+ set
+ {
+ _vinculado = value;
+ IsVisibleVinculado = value != null && value.Count > 0;
+ OnPropertyChanged("Vinculado");
+ }
+ }
+
+ public List<VinculoVendedor> VinculadoFiltro
+ {
+ get
+ {
+ return _vinculadoFiltro;
+ }
+ set
+ {
+ _vinculadoFiltro = value;
+ OnPropertyChanged("VinculadoFiltro");
+ }
+ }
+
+ public List<VinculoVendedor> Vendedor
+ {
+ get
+ {
+ return _vendedor;
+ }
+ set
+ {
+ _vendedor = value;
+ IsVisibleVendedor = value != null && value.Count > 0;
+ OnPropertyChanged("Vendedor");
+ }
+ }
+
+ public List<VinculoVendedor> VendedorFiltro
+ {
+ get
+ {
+ return _vendedorFiltro;
+ }
+ set
+ {
+ _vendedorFiltro = value;
+ OnPropertyChanged("VendedorFiltro");
+ }
+ }
+
+ public VinculoVendedorViewModel(Usuario usuario)
+ {
+ SelectedUsuario = usuario;
+ _servicoVendedorUsuario = new VendedorUsuarioServico();
+ _servicoVendedor = new VendedorServico();
+ Load(usuario);
+ EnableAlterarVinculo = ((DomainBase)Recursos.Usuario).Id > 0;
+ base.EnableMenu = true;
+ }
+
+ private async void Load(Usuario usuario)
+ {
+ await AwaitLoad(usuario);
+ }
+
+ private async Task AwaitLoad(Usuario usuario)
+ {
+ Vinculado = await GetVinculo(usuario);
+ Vendedor = await GetVendedor(usuario);
+ VinculadoFiltro = Vinculado;
+ VendedorFiltro = Vendedor;
+ }
+
+ private async Task<List<VinculoVendedor>> GetVinculo(Usuario usuario)
+ {
+ List<VinculoVendedor> vinculado = new List<VinculoVendedor>();
+ (await _servicoVendedorUsuario.FindByVinculo(usuario)).ForEach(delegate(VendedorUsuario x)
+ {
+ //IL_0000: Unknown result type (might be due to invalid IL or missing references)
+ //IL_0005: Unknown result type (might be due to invalid IL or missing references)
+ //IL_0011: Unknown result type (might be due to invalid IL or missing references)
+ //IL_001d: Unknown result type (might be due to invalid IL or missing references)
+ //IL_0025: Expected O, but got Unknown
+ VinculoVendedor item = new VinculoVendedor
+ {
+ Id = ((DomainBase)x).Id,
+ Vendedor = x.Vendedor,
+ Vinculado = true
+ };
+ vinculado.Add(item);
+ });
+ return vinculado;
+ }
+
+ private async Task<List<VinculoVendedor>> GetVendedor(Usuario usuario)
+ {
+ List<Vendedor> list = (await _servicoVendedor.BuscarVendedoresAtivosAsync())?.Where((Vendedor x) => x.IdEmpresa == usuario.IdEmpresa).ToList();
+ return (list == null || list.Count == 0) ? null : list.Where((Vendedor vendedor) => Vinculado.All((VinculoVendedor x) => ((DomainBase)x.Vendedor).Id != ((DomainBase)vendedor).Id)).Select((Func<Vendedor, VinculoVendedor>)((Vendedor vendedor) => new VinculoVendedor
+ {
+ Id = 0L,
+ Vendedor = vendedor,
+ Vinculado = false
+ })).ToList();
+ }
+
+ internal async Task BuscarVinculoVendedor(string value)
+ {
+ await Task.Run(delegate
+ {
+ FiltrarVinculoVendedor(value);
+ });
+ }
+
+ internal void FiltrarVinculoVendedor(string filter)
+ {
+ Vinculado = (string.IsNullOrEmpty(filter) ? VinculadoFiltro : new List<VinculoVendedor>(VinculadoFiltro.Where((VinculoVendedor x) => ValidationHelper.RemoveDiacritics(x.Vendedor.Nome.ToUpper().Trim()).Contains(filter.ToUpper()))));
+ Vendedor = (string.IsNullOrEmpty(filter) ? VendedorFiltro : new List<VinculoVendedor>(VendedorFiltro.Where((VinculoVendedor x) => ValidationHelper.RemoveDiacritics(x.Vendedor.Nome.ToUpper().Trim()).Contains(filter.ToUpper()))));
+ }
+
+ public async Task Salvar()
+ {
+ List<VendedorUsuario> list = Vinculado.Where((VinculoVendedor x) => !x.Vinculado).Select((Func<VinculoVendedor, VendedorUsuario>)((VinculoVendedor x) => new VendedorUsuario
+ {
+ Id = ((DomainBase)x).Id,
+ Vendedor = x.Vendedor,
+ Usuario = SelectedUsuario
+ })).ToList();
+ if (list.Count > 0 && !(await _servicoVendedorUsuario.Delete(list)))
+ {
+ return;
+ }
+ List<VendedorUsuario> list2 = Vendedor.Where((VinculoVendedor x) => x.Vinculado).Select((Func<VinculoVendedor, VendedorUsuario>)((VinculoVendedor x) => new VendedorUsuario
+ {
+ Id = ((DomainBase)x).Id,
+ Vendedor = x.Vendedor,
+ Usuario = SelectedUsuario
+ })).ToList();
+ if (list2.Count > 0)
+ {
+ await _servicoVendedorUsuario.SaveOrUpdate(list2);
+ }
+ await AwaitLoad(SelectedUsuario);
+ UnitOfWork commited = Instancia.Commited;
+ try
+ {
+ IPHostEntry hostEntry = Dns.GetHostEntry(Dns.GetHostName());
+ RegistroLog keyValues = new RegistroLog
+ {
+ Acao = (TipoAcao)0,
+ Usuario = Recursos.Usuario,
+ DataHora = Funcoes.GetNetworkTime(),
+ Descricao = JsonConvert.SerializeObject((object)Vinculado.Select((VinculoVendedor x) => x.Vendedor).ToList(), new JsonSerializerSettings
+ {
+ ReferenceLoopHandling = (ReferenceLoopHandling)1
+ }),
+ EntidadeId = ((DomainBase)SelectedUsuario).Id,
+ Tela = (TipoTela)45,
+ Versao = LoginViewModel.VersaoAtual,
+ NomeMaquina = Environment.MachineName,
+ UsuarioMaquina = Environment.UserName,
+ Ip = hostEntry.AddressList.FirstOrDefault((IPAddress ip) => ip.AddressFamily == AddressFamily.InterNetwork)?.ToString()
+ };
+ _servicoVendedorUsuario.SaveLog(keyValues, commited);
+ ((GenericUnitOfWork)commited).Commit();
+ }
+ finally
+ {
+ ((IDisposable)commited)?.Dispose();
+ }
+ RegistrarAcao("ALTEROU VÍNCULOS DE VENDEDOR DO USUÁRIO \"" + SelectedUsuario.Nome + "\"", ((DomainBase)SelectedUsuario).Id, (TipoTela)45, $"ID: {((DomainBase)SelectedUsuario).Id}\n\nACESSE O LOG DE ALTERAÇÕES NA TELA DE VÍNCULO DE VENDEDOR PARA VER EXATAMENTE O QUE FOI ALTERADO.");
+ }
+}