summaryrefslogtreecommitdiff
path: root/Codemerx/Gestor.Application/Views/LoginWindow.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Codemerx/Gestor.Application/Views/LoginWindow.cs')
-rw-r--r--Codemerx/Gestor.Application/Views/LoginWindow.cs825
1 files changed, 825 insertions, 0 deletions
diff --git a/Codemerx/Gestor.Application/Views/LoginWindow.cs b/Codemerx/Gestor.Application/Views/LoginWindow.cs
new file mode 100644
index 0000000..96cac36
--- /dev/null
+++ b/Codemerx/Gestor.Application/Views/LoginWindow.cs
@@ -0,0 +1,825 @@
+using Agger.Registro;
+using Gestor.Application;
+using Gestor.Application.Componentes;
+using Gestor.Application.Helpers;
+using Gestor.Application.Servicos.Ajuda;
+using Gestor.Application.Servicos.Generic;
+using Gestor.Application.ViewModels;
+using Gestor.Application.ViewModels.Generic;
+using Gestor.Application.Views.Ferramentas;
+using Gestor.Infrastructure.UnitOfWork.Generic;
+using Gestor.Infrastructure.UnitOfWork.Logic;
+using Gestor.Model.API;
+using Gestor.Model.Domain.Common;
+using Gestor.Model.Domain.Generic;
+using Gestor.Model.Domain.Seguros;
+using Gestor.Model.License;
+using Newtonsoft.Json.Linq;
+using System;
+using System.CodeDom.Compiler;
+using System.Collections.Generic;
+using System.Collections.ObjectModel;
+using System.ComponentModel;
+using System.Diagnostics;
+using System.Linq;
+using System.Net;
+using System.Net.Http;
+using System.Net.Sockets;
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Threading.Tasks;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Controls.Primitives;
+using System.Windows.Input;
+using System.Windows.Markup;
+using System.Windows.Media;
+using System.Windows.Shapes;
+using System.Windows.Threading;
+
+namespace Gestor.Application.Views
+{
+ public class LoginWindow : Window, IComponentConnector
+ {
+ internal LoginViewModel ViewModel;
+
+ private bool _buttonClickable;
+
+ private DispatcherTimer _carouselTimer;
+
+ internal Image ProgressRing;
+
+ internal TextBox UserBox;
+
+ internal CustomSenhaLoginBox PasswordBox;
+
+ internal TextBlock TrocaSenha;
+
+ internal CustomSenhaLoginBox SenhaBox;
+
+ internal CustomSenhaLoginBox ConfirmacaoBox;
+
+ internal TextBox ChaveBox;
+
+ internal Grid MinimizeButton;
+
+ internal Grid CloseButton;
+
+ private bool _contentLoaded;
+
+ public bool Bloquear
+ {
+ get;
+ set;
+ }
+
+ private JArray LoginSettings
+ {
+ get;
+ set;
+ }
+
+ [DebuggerNonUserCode]
+ [GeneratedCode("PresentationBuildTasks", "4.0.0.0")]
+ internal Delegate _CreateDelegate(Type delegateType, string handler)
+ {
+ return Delegate.CreateDelegate(delegateType, this, handler);
+ }
+
+ public LoginWindow()
+ {
+ ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
+ this.ViewModel = new LoginViewModel();
+ base.DataContext = this.ViewModel;
+ this.InitializeComponent();
+ this.MinimizeButton.MouseEnter += new MouseEventHandler(LoginWindow.TopControls_OnMouseEnter);
+ this.MinimizeButton.MouseLeave += new MouseEventHandler(this.TopControls_OnMouseLeave);
+ this.CloseButton.MouseEnter += new MouseEventHandler(LoginWindow.TopControls_OnMouseEnter);
+ this.CloseButton.MouseLeave += new MouseEventHandler(this.TopControls_OnMouseLeave);
+ this.ViewModel.Head = string.Concat("AGGER GESTOR ", this.ViewModel.Version, " - AGUARDE ESTAMOS INICIALIZANDO");
+ }
+
+ private async Task Access(bool error = true)
+ {
+ string str;
+ if (string.IsNullOrEmpty(this.ViewModel.Login) || string.IsNullOrEmpty(this.ViewModel.Senha))
+ {
+ if (error)
+ {
+ this.ViewModel.ErrorLoginVisibility = System.Windows.Visibility.Visible;
+ }
+ this.UserBox.Focus();
+ }
+ else
+ {
+ this.Loading(true);
+ if (await this.ViewModel.Validate(this.ViewModel.Login, this.ViewModel.Senha))
+ {
+ bool bloquear = this.Bloquear;
+ if (!bloquear)
+ {
+ bloquear = await this.VerificarAcesso();
+ }
+ this.Bloquear = bloquear;
+ if (!this.Bloquear)
+ {
+ DateTime networkTime = Funcoes.GetNetworkTime();
+ if (Recursos.Usuario.get_Id() > (long)0)
+ {
+ RegistroLog registroLog = new RegistroLog();
+ registroLog.set_Acao(0);
+ registroLog.set_Usuario(Recursos.Usuario);
+ registroLog.set_DataHora(networkTime);
+ registroLog.set_Descricao(string.Format("O USUÁRIO {0} LOGOU NO SISTEMA, EM {1}.", Recursos.Usuario.get_Nome(), networkTime));
+ registroLog.set_EntidadeId(Recursos.Usuario.get_Id());
+ registroLog.set_Tela(49);
+ registroLog.set_Versao(LoginViewModel.VersaoAtual);
+ registroLog.set_NomeMaquina(Environment.MachineName);
+ registroLog.set_UsuarioMaquina(Environment.UserName);
+ IPAddress[] addressList = Dns.GetHostEntry(Dns.GetHostName()).AddressList;
+ IPAddress pAddress = ((IEnumerable<IPAddress>)addressList).FirstOrDefault<IPAddress>((IPAddress ip) => ip.AddressFamily == AddressFamily.InterNetwork);
+ if (pAddress != null)
+ {
+ str = pAddress.ToString();
+ }
+ else
+ {
+ str = null;
+ }
+ registroLog.set_Ip(str);
+ RegistroLog registroLog1 = registroLog;
+ using (UnitOfWork commited = Instancia.Commited)
+ {
+ (new BaseServico()).SaveLog(registroLog1, commited);
+ commited.Commit();
+ }
+ }
+ Parameters parameter = new Parameters();
+ parameter.set_Beta(ApplicationHelper.Beta);
+ parameter.set_Type(7);
+ parameter.set_Application("Agger.Gestor.exe");
+ parameter.set_Directory("");
+ parameter.set_Run(false);
+ (new DownloadWindow(parameter)).Show();
+ (new MainWindow()).Show();
+ base.Close();
+ }
+ }
+ else
+ {
+ this.Loading(false);
+ this.UserBox.Focus();
+ }
+ }
+ }
+
+ private async void Acessar_Click(object sender, RoutedEventArgs e)
+ {
+ ((RepeatButton)sender).Click -= new RoutedEventHandler(this.Acessar_Click);
+ await this.Access(true);
+ ((RepeatButton)sender).Click += new RoutedEventHandler(this.Acessar_Click);
+ }
+
+ private void CancelarRegistro(object sender, RoutedEventArgs e)
+ {
+ this.ViewModel.FecharRegistro();
+ }
+
+ private void CancelarTrocaSenha_OnClick(object sender, RoutedEventArgs e)
+ {
+ this.ViewModel.TrocaSenhaVisibility = System.Windows.Visibility.Collapsed;
+ this.ViewModel.LoginVisibility = System.Windows.Visibility.Visible;
+ }
+
+ private void CentralAtendimento_OnPreviewMouseDown(object sender, MouseButtonEventArgs e)
+ {
+ Process.Start(new ProcessStartInfo()
+ {
+ FileName = this.ViewModel.CentralAtendimento,
+ UseShellExecute = true
+ });
+ }
+
+ public void CloseButton_Click()
+ {
+ base.Close();
+ }
+
+ [DebuggerNonUserCode]
+ [GeneratedCode("PresentationBuildTasks", "4.0.0.0")]
+ public void InitializeComponent()
+ {
+ if (this._contentLoaded)
+ {
+ return;
+ }
+ this._contentLoaded = true;
+ System.Windows.Application.LoadComponent(this, new Uri("/Gestor.Application;component/views/loginwindow.xaml", UriKind.Relative));
+ }
+
+ private void LinkImage_MouseDown(object sender, MouseButtonEventArgs e)
+ {
+ Process.Start(new ProcessStartInfo()
+ {
+ FileName = this.ViewModel.ImagemLink,
+ UseShellExecute = true
+ });
+ }
+
+ private void Loading(bool isLoading)
+ {
+ this.ViewModel.EnableFields = !isLoading;
+ this.ViewModel.LoadingVisibility = isLoading;
+ this.ViewModel.FieldsVisibility = !isLoading;
+ base.IsEnabled = !isLoading;
+ }
+
+ private async void LoginWindow_OnLoaded(object sender, RoutedEventArgs e)
+ {
+ this.Loading(true);
+ await this.ViewModel.GetCfgJson();
+ await this.SearchImage();
+ this.ViewModel.EnableButtons = false;
+ LicenseHelper licenseHelper = new LicenseHelper();
+ bool flag = await licenseHelper.VerificarRegistro();
+ if (!flag)
+ {
+ string str = await licenseHelper.FindKey();
+ bool flag1 = false;
+ if (str != null)
+ {
+ await licenseHelper.Registrar(str);
+ flag1 = true;
+ }
+ if (str == null && !string.IsNullOrWhiteSpace(Recursos.Registrar))
+ {
+ await licenseHelper.Registrar(Recursos.Registrar);
+ flag1 = true;
+ }
+ if (flag1)
+ {
+ flag = await licenseHelper.VerificarRegistro();
+ }
+ str = null;
+ }
+ if (!flag)
+ {
+ this.Loading(false);
+ this.ViewModel.AbrirRegistro();
+ this.ViewModel.EnableButtons = true;
+ }
+ else
+ {
+ Tuple<bool, string> tuple = await licenseHelper.VerificarAcesso();
+ if (tuple.Item1)
+ {
+ ConnectionHelper connectionHelper = new ConnectionHelper();
+ Tuple<bool, bool> tuple1 = await connectionHelper.PrimeiroAcesso();
+ if (Gestor.Application.Helpers.Connection.ConnectionAddress == null || Gestor.Application.Helpers.Connection.ConnectionAddress.get_Type() == 4)
+ {
+ this.Loading(false);
+ this.ViewModel.AcessoNegado("Erro de conexão com Banco Gestor.\nEntre em contato com Suporte!");
+ }
+ else if (!tuple1.Item1 || !tuple1.Item2)
+ {
+ (new TutorialView(tuple1)).Show();
+ base.Close();
+ }
+ else
+ {
+ Tuple<bool, string> tuple2 = await licenseHelper.VerificarVersao();
+ if (tuple2.Item1)
+ {
+ Task.Run(() => {
+ try
+ {
+ if (!connectionHelper.BDConvertido())
+ {
+ (new BaseServico()).BuscarEmpresa((long)1);
+ }
+ }
+ catch
+ {
+ }
+ });
+ this.Loading(false);
+ if (!string.IsNullOrWhiteSpace(this.UserBox.Text))
+ {
+ this.PasswordBox.PasswordBox.Focus();
+ }
+ else
+ {
+ this.UserBox.Focus();
+ }
+ this.ViewModel.EnableButtons = true;
+ string result = Gestor.Application.Helpers.Connection.Get<string>(string.Concat("Customer/Name/", ApplicationHelper.NumeroSerial), true, false).Result;
+ this.ViewModel.Head = result;
+ }
+ else
+ {
+ this.Loading(false);
+ this.ViewModel.AcessoNegado(tuple2.Item2);
+ }
+ }
+ }
+ else
+ {
+ this.Loading(false);
+ this.ViewModel.AcessoNegado(tuple.Item2);
+ }
+ }
+ licenseHelper = null;
+ }
+
+ public void MinimizeButton_Click()
+ {
+ base.WindowState = System.Windows.WindowState.Minimized;
+ }
+
+ private void NovoPerfil_OnPreviewMouseDown(object sender, MouseButtonEventArgs e)
+ {
+ this.ViewModel.AbrirRegistro();
+ this.ViewModel.EnableButtons = true;
+ }
+
+ protected override void OnRenderSizeChanged(SizeChangedInfo sizeInfo)
+ {
+ Size newSize;
+ base.OnRenderSizeChanged(sizeInfo);
+ if (sizeInfo.HeightChanged)
+ {
+ double top = base.Top;
+ double height = sizeInfo.PreviousSize.Height;
+ newSize = sizeInfo.NewSize;
+ base.Top = top + (height - newSize.Height) / 2;
+ }
+ if (sizeInfo.WidthChanged)
+ {
+ double left = base.Left;
+ double width = sizeInfo.PreviousSize.Width;
+ newSize = sizeInfo.NewSize;
+ base.Left = left + (width - newSize.Width) / 2;
+ }
+ }
+
+ private async void PasswordBox_OnKeyDown(object sender, KeyEventArgs e)
+ {
+ if (e.Key == Key.Return)
+ {
+ await this.Access(true);
+ }
+ }
+
+ private async void Registrar_OnClick(object sender, RoutedEventArgs e)
+ {
+ this.Loading(true);
+ LicenseHelper licenseHelper = new LicenseHelper();
+ string str = await licenseHelper.Registrar(this.ViewModel.Chave);
+ if (str != "false")
+ {
+ if (str == "root")
+ {
+ await this.ViewModel.ShowMessage("CHAVE JÁ REGISTRADA ANTERIORMENTE.", "OK", "", false);
+ }
+ this.ViewModel.FecharRegistro();
+ string result = Gestor.Application.Helpers.Connection.Get<string>(string.Concat("Customer/Name/", ApplicationHelper.NumeroSerial), true, false).Result;
+ this.ViewModel.Head = result;
+ Tuple<bool, string> tuple = await licenseHelper.VerificarAcesso();
+ if (tuple.Item1)
+ {
+ Tuple<bool, bool> tuple1 = await (new ConnectionHelper()).PrimeiroAcesso();
+ if (!tuple1.Item1 || !tuple1.Item2)
+ {
+ (new TutorialView(tuple1)).Show();
+ base.Close();
+ }
+ else
+ {
+ this.Loading(false);
+ await this.Access(false);
+ }
+ }
+ else
+ {
+ this.Loading(false);
+ this.ViewModel.AcessoNegado(tuple.Item2);
+ }
+ }
+ else
+ {
+ await this.ViewModel.ShowMessage("CHAVE INVÁLIDA", "OK", "", false);
+ this.Loading(false);
+ this.ViewModel.AbrirRegistro();
+ }
+ licenseHelper = null;
+ }
+
+ private async Task SearchImage()
+ {
+ string str2;
+ string str3;
+ try
+ {
+ using (HttpClient httpClient = new HttpClient())
+ {
+ ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
+ httpClient.set_Timeout(TimeSpan.FromSeconds(30));
+ string stringAsync = await httpClient.GetStringAsync(Address.get_LoginJsonV2());
+ this.LoginSettings = JArray.Parse(stringAsync);
+ DateTime now = DateTime.Now;
+ foreach (JToken jToken2 in this.LoginSettings.Where<JToken>((JToken x) => {
+ DateTime dateTime;
+ DateTime dateTime1;
+ bool flag;
+ List<int> list;
+ string str;
+ string str1;
+ JToken item = x.get_Item("Ativo");
+ flag = (item != null ? Extensions.Value<bool>(item) : false);
+ if (!flag)
+ {
+ return false;
+ }
+ JToken jToken = x.get_Item("Produto");
+ if (jToken != null)
+ {
+ list = jToken.Values<int>().ToList<int>();
+ }
+ else
+ {
+ list = null;
+ }
+ List<int> nums = list;
+ if (nums != null)
+ {
+ List<int> nums1 = nums;
+ Func<int, bool> u003cu003e9_201 = LoginWindow.u003cu003ec.u003cu003e9__20_1;
+ if (u003cu003e9_201 == null)
+ {
+ u003cu003e9_201 = (int p) => {
+ if (p == 0)
+ {
+ return true;
+ }
+ return p == 3;
+ };
+ LoginWindow.u003cu003ec.u003cu003e9__20_1 = u003cu003e9_201;
+ }
+ if (nums1.Any<int>(u003cu003e9_201))
+ {
+ JToken item1 = x.get_Item("Inicio");
+ if (item1 != null)
+ {
+ str = item1.ToString();
+ }
+ else
+ {
+ str = null;
+ }
+ bool flag1 = DateTime.TryParse(str, out dateTime);
+ JToken jToken1 = x.get_Item("Fim");
+ if (jToken1 != null)
+ {
+ str1 = jToken1.ToString();
+ }
+ else
+ {
+ str1 = null;
+ }
+ bool flag2 = DateTime.TryParse(str1, out dateTime1);
+ if (flag1 & flag2)
+ {
+ if (now < dateTime)
+ {
+ return false;
+ }
+ return now <= dateTime1;
+ }
+ if (flag1)
+ {
+ return now >= dateTime;
+ }
+ if (!flag2)
+ {
+ return true;
+ }
+ return now <= dateTime1;
+ }
+ }
+ return false;
+ }))
+ {
+ ObservableCollection<LoginImageModel> loginImages = this.ViewModel.LoginImages;
+ LoginImageModel loginImageModel = new LoginImageModel();
+ JToken jToken3 = jToken2.get_Item("Imagem");
+ if (jToken3 != null)
+ {
+ str2 = jToken3.ToString();
+ }
+ else
+ {
+ str2 = null;
+ }
+ loginImageModel.Imagem = str2;
+ JToken jToken4 = jToken2.get_Item("UrlFixa");
+ if (jToken4 != null)
+ {
+ str3 = jToken4.ToString();
+ }
+ else
+ {
+ str3 = null;
+ }
+ loginImageModel.UrlFixa = str3;
+ loginImages.Add(loginImageModel);
+ }
+ this.ViewModel.SelectedImage = this.ViewModel.LoginImages.FirstOrDefault<LoginImageModel>();
+ base.Dispatcher.Invoke(new Action(this.StartCarousel));
+ }
+ httpClient = null;
+ }
+ catch
+ {
+ }
+ }
+
+ private void StartCarousel()
+ {
+ if (this.ViewModel.LoginImages.Count <= 1)
+ {
+ return;
+ }
+ this._carouselTimer = new DispatcherTimer()
+ {
+ Interval = TimeSpan.FromSeconds(10)
+ };
+ this._carouselTimer.Tick += new EventHandler((object s, EventArgs e) => {
+ int num = (this.ViewModel.LoginImages.IndexOf(this.ViewModel.SelectedImage) + 1) % this.ViewModel.LoginImages.Count;
+ this.ViewModel.SelectedImage = this.ViewModel.LoginImages[num];
+ });
+ this._carouselTimer.Start();
+ }
+
+ [DebuggerNonUserCode]
+ [EditorBrowsable(EditorBrowsableState.Never)]
+ [GeneratedCode("PresentationBuildTasks", "4.0.0.0")]
+ void System.Windows.Markup.IComponentConnector.Connect(int connectionId, object target)
+ {
+ switch (connectionId)
+ {
+ case 1:
+ {
+ ((LoginWindow)target).Loaded += new RoutedEventHandler(this.LoginWindow_OnLoaded);
+ return;
+ }
+ case 2:
+ {
+ this.ProgressRing = (Image)target;
+ return;
+ }
+ case 3:
+ {
+ this.UserBox = (TextBox)target;
+ return;
+ }
+ case 4:
+ {
+ this.PasswordBox = (CustomSenhaLoginBox)target;
+ return;
+ }
+ case 5:
+ {
+ this.TrocaSenha = (TextBlock)target;
+ this.TrocaSenha.PreviewMouseDown += new MouseButtonEventHandler(this.TrocarSenha_OnPreviewMouseDown);
+ return;
+ }
+ case 6:
+ {
+ ((RepeatButton)target).Click += new RoutedEventHandler(this.Acessar_Click);
+ return;
+ }
+ case 7:
+ {
+ ((TextBlock)target).PreviewMouseDown += new MouseButtonEventHandler(this.NovoPerfil_OnPreviewMouseDown);
+ return;
+ }
+ case 8:
+ {
+ this.SenhaBox = (CustomSenhaLoginBox)target;
+ return;
+ }
+ case 9:
+ {
+ this.ConfirmacaoBox = (CustomSenhaLoginBox)target;
+ return;
+ }
+ case 10:
+ {
+ ((RepeatButton)target).Click += new RoutedEventHandler(this.CancelarTrocaSenha_OnClick);
+ return;
+ }
+ case 11:
+ {
+ ((RepeatButton)target).Click += new RoutedEventHandler(this.TrocarSenha_OnClick);
+ return;
+ }
+ case 12:
+ {
+ ((TextBlock)target).PreviewMouseDown += new MouseButtonEventHandler(this.CentralAtendimento_OnPreviewMouseDown);
+ return;
+ }
+ case 13:
+ {
+ this.ChaveBox = (TextBox)target;
+ return;
+ }
+ case 14:
+ {
+ ((RepeatButton)target).Click += new RoutedEventHandler(this.CancelarRegistro);
+ return;
+ }
+ case 15:
+ {
+ ((RepeatButton)target).Click += new RoutedEventHandler(this.Registrar_OnClick);
+ return;
+ }
+ case 16:
+ {
+ this.MinimizeButton = (Grid)target;
+ this.MinimizeButton.MouseLeftButtonDown += new MouseButtonEventHandler(this.TopControls_OnMouseLeftButtonDown);
+ this.MinimizeButton.MouseLeftButtonUp += new MouseButtonEventHandler(this.TopControls_OnMouseLeftButtonUp);
+ return;
+ }
+ case 17:
+ {
+ this.CloseButton = (Grid)target;
+ this.CloseButton.MouseLeftButtonDown += new MouseButtonEventHandler(this.TopControls_OnMouseLeftButtonDown);
+ this.CloseButton.MouseLeftButtonUp += new MouseButtonEventHandler(this.TopControls_OnMouseLeftButtonUp);
+ return;
+ }
+ }
+ this._contentLoaded = true;
+ }
+
+ private static void TopControls_OnMouseEnter(object sender, MouseEventArgs e)
+ {
+ ((Grid)sender).Background = (((Grid)sender).Name == "CloseButton" ? new SolidColorBrush((Color)System.Windows.Application.Current.Resources["AggerYellow100"]) : new SolidColorBrush(Colors.Gray));
+ Path child = VisualTreeHelper.GetChild((Grid)sender, 0) as Path;
+ if (child != null)
+ {
+ child.Stroke = new SolidColorBrush(Colors.White);
+ }
+ }
+
+ private void TopControls_OnMouseLeave(object sender, MouseEventArgs e)
+ {
+ this._buttonClickable = false;
+ ((Grid)sender).Background = new SolidColorBrush(Colors.Transparent);
+ Path child = VisualTreeHelper.GetChild((Grid)sender, 0) as Path;
+ if (child != null)
+ {
+ child.Stroke = (((Grid)sender).Name == "CloseButton" ? new SolidColorBrush((Color)System.Windows.Application.Current.Resources["AggerYellow100"]) : new SolidColorBrush(Colors.DimGray));
+ }
+ }
+
+ private void TopControls_OnMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
+ {
+ this._buttonClickable = true;
+ ((Grid)sender).Background = (((Grid)sender).Name == "CloseButton" ? new SolidColorBrush(Colors.DarkGoldenrod) : new SolidColorBrush(Colors.DimGray));
+ }
+
+ private void TopControls_OnMouseLeftButtonUp(object sender, MouseButtonEventArgs e)
+ {
+ if (this._buttonClickable)
+ {
+ MethodInfo method = base.GetType().GetMethod(string.Concat(((Grid)sender).Name, "_Click"));
+ if (method == null)
+ {
+ return;
+ }
+ method.Invoke(this, null);
+ }
+ }
+
+ private async void TrocarSenha_OnClick(object sender, RoutedEventArgs e)
+ {
+ this.Loading(true);
+ bool flag = await this.ViewModel.TrocaSenha();
+ this.Loading(false);
+ if (flag)
+ {
+ await this.Access(true);
+ }
+ }
+
+ private async void TrocarSenha_OnPreviewMouseDown(object sender, MouseButtonEventArgs e)
+ {
+ this.Loading(true);
+ await this.ViewModel.AbrirTrocaSenha();
+ this.Loading(false);
+ }
+
+ private async Task<bool> VerificarAcesso()
+ {
+ bool flag;
+ Instalacao instalacao;
+ LicenseHelper licenseHelper = new LicenseHelper();
+ Tuple<bool, string> tuple = await licenseHelper.VerificarAcesso();
+ if (tuple.Item1)
+ {
+ if (!this.ViewModel.Login.Contains("AGGER@"))
+ {
+ bool flag1 = false;
+ if (!await licenseHelper.VerificarMaquina())
+ {
+ this.Loading(false);
+ while (!flag1)
+ {
+ List<Instalacao> instalacoes = await licenseHelper.GetInstalacoes();
+ if (instalacoes.Count != 0)
+ {
+ List<Instalacao> instalacaos = instalacoes;
+ IOrderedEnumerable<Instalacao> ultimoAcesso =
+ from x in instalacaos
+ orderby x.get_UltimoAcesso() descending
+ select x;
+ Instalacao instalacao1 = ultimoAcesso.FirstOrDefault<Instalacao>((Instalacao x) => x.get_UsuarioId() == Recursos.Usuario.get_Id());
+ bool flag2 = instalacao1 != null;
+ if (flag2)
+ {
+ flag2 = await this.ViewModel.ShowMessage(string.Concat("SEU ULTIMO ACESSO FOI NA MAQUINA ", instalacao1.get_NomeMaquina(), ". DESEJA SUBSTITUIR A LICENÇA PARA ESSA MAQUINA?"), "SIM", "NÃO", false);
+ }
+ if (!flag2)
+ {
+ instalacao = await this.ViewModel.ShowInstalacoes(instalacoes);
+ }
+ else
+ {
+ instalacao = instalacao1;
+ }
+ Instalacao instalacao2 = instalacao;
+ if (instalacao2 != null)
+ {
+ this.Loading(true);
+ await (new AjudaServico()).ExcluirInstalacao(instalacao2.get_Id());
+ await Task.Delay(15000);
+ flag2 = await licenseHelper.VerificarMaquina();
+ flag1 = flag2;
+ this.Loading(false);
+ instalacoes = null;
+ instalacao1 = null;
+ }
+ else
+ {
+ this.ViewModel.AcessoNegado("MÁQUINA NÃO REGISTRADA");
+ flag = true;
+ licenseHelper = null;
+ return flag;
+ }
+ }
+ else
+ {
+ this.ViewModel.AcessoNegado("ACESSO NEGADO, NÃO EXISTEM LICENÇAS VÁLIDAS.");
+ flag = true;
+ licenseHelper = null;
+ return flag;
+ }
+ }
+ }
+ }
+ Tuple<bool, string> tuple1 = await licenseHelper.VerificarVersao();
+ if (tuple1.Item1)
+ {
+ string str = await (new ConnectionHelper()).AtualizarBanco();
+ if (str == null)
+ {
+ if (!await this.ViewModel.Load())
+ {
+ base.Close();
+ }
+ flag = false;
+ }
+ else
+ {
+ await this.ViewModel.ShowMessage(str, "OK", "", false);
+ flag = false;
+ }
+ }
+ else
+ {
+ this.Loading(false);
+ this.ViewModel.AcessoNegado(tuple1.Item2);
+ flag = true;
+ }
+ }
+ else
+ {
+ this.Loading(false);
+ this.ViewModel.AcessoNegado(tuple.Item2);
+ flag = true;
+ }
+ licenseHelper = null;
+ return flag;
+ }
+ }
+} \ No newline at end of file