using Gestor.Application.Helpers; using Gestor.Application.Servicos.Generic; using Gestor.Application.ViewModels; using Gestor.Infrastructure.Repository.Interface; 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; using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; using System.Net; using System.Net.Sockets; using System.Runtime.CompilerServices; using System.Threading.Tasks; namespace Gestor.Application.Servicos.Seguros.Itens { internal class AutoServico : BaseServico { public AutoServico() { } internal async Task BuscarAuto(string value, long id, DateTime vigencia1, DateTime? vigencia2, long idSeguradora) { int num = 3; Documento documento1 = await Task.Run(() => { Documento documento; while (num > 0) { try { using (UnitOfWork read = Instancia.Read) { documento = read.get_AutoRepository().FindByChassi(value, id, vigencia1, vigencia2, idSeguradora); } } catch (Exception exception) { num = base.Registrar(exception, 50, num, new { @value = value, id = id }, true); continue; } return documento; } return new Documento(); }); return documento1; } internal async Task> BuscarChassi(string chassi, FiltroStatusDocumento status, List vendedorVinculado, bool tipobusca = false) { List pesquisaAvancadas1 = await Task.Run>(() => { List pesquisaAvancadas; try { using (UnitOfWork read = Instancia.Read) { pesquisaAvancadas = read.get_AutoRepository().FindAuto(chassi, status, vendedorVinculado, 0, tipobusca); } } catch (Exception exception) { pesquisaAvancadas = null; } return pesquisaAvancadas; }); return pesquisaAvancadas1; } public async Task BuscarChassi(long id) { string str1 = await Task.Run(() => { string str; try { using (UnitOfWork read = Instancia.Read) { str = read.get_AutoRepository().FindChassi(id); } } catch (Exception exception) { str = null; } return str; }); return str1; } public async Task> BuscarItem(string item, FiltroStatusDocumento status, List vendedorVinculado, bool tipobusca = false) { List pesquisaAvancadas1 = await Task.Run>(() => { List pesquisaAvancadas; try { using (UnitOfWork read = Instancia.Read) { pesquisaAvancadas = read.get_AutoRepository().FindAuto(item, status, vendedorVinculado, 6, tipobusca); } } catch (Exception exception) { pesquisaAvancadas = null; } return pesquisaAvancadas; }); return pesquisaAvancadas1; } internal async Task> BuscarPlaca(string placa, FiltroStatusDocumento status, List vendedorVinculado, bool tipobusca = false) { List pesquisaAvancadas1 = await Task.Run>(() => { List pesquisaAvancadas; try { using (UnitOfWork read = Instancia.Read) { pesquisaAvancadas = read.get_AutoRepository().FindAuto(placa, status, vendedorVinculado, 14, tipobusca); } } catch (Exception exception) { pesquisaAvancadas = null; } return pesquisaAvancadas; }); return pesquisaAvancadas1; } public async Task Delete(Item item) { int num = 3; bool flag1 = await Task.Run(() => { bool flag; long id; string str; while (num > 0) { try { using (UnitOfWork commited = Instancia.Commited) { if (item.get_Auto() != null && item.get_Auto().get_Id() > (long)0) { commited.get_AutoRepository().Delete(item.get_Auto().get_Id()); } commited.get_CoberturaRepository().DeletebyItem(item.get_Id()); commited.get_ControleSinistroRepository().DeleteByItem(item.get_Id()); commited.get_ItemRepository().Delete(item.get_Id()); DateTime networkTime = Funcoes.GetNetworkTime(); IPHostEntry hostEntry = Dns.GetHostEntry(Dns.GetHostName()); RegistroLog registroLog = new RegistroLog(); registroLog.set_Acao(2); registroLog.set_Usuario(Recursos.Usuario); registroLog.set_DataHora(networkTime); Item item1 = item; JsonSerializerSettings jsonSerializerSetting = new JsonSerializerSettings(); jsonSerializerSetting.set_ReferenceLoopHandling(1); registroLog.set_Descricao(JsonConvert.SerializeObject(item1, jsonSerializerSetting)); Auto auto = item.get_Auto(); id = (auto != null ? auto.get_Id() : (long)0); registroLog.set_EntidadeId(id); registroLog.set_Tela(3); registroLog.set_Versao(LoginViewModel.VersaoAtual); registroLog.set_NomeMaquina(Environment.MachineName); registroLog.set_UsuarioMaquina(Environment.UserName); IPAddress[] addressList = hostEntry.AddressList; Func u003cu003e9_21 = AutoServico.u003cu003ec.u003cu003e9__2_1; if (u003cu003e9_21 == null) { u003cu003e9_21 = (IPAddress ip) => ip.AddressFamily == AddressFamily.InterNetwork; AutoServico.u003cu003ec.u003cu003e9__2_1 = u003cu003e9_21; } IPAddress pAddress = ((IEnumerable)addressList).FirstOrDefault(u003cu003e9_21); if (pAddress != null) { str = pAddress.ToString(); } else { str = null; } registroLog.set_Ip(str); base.SaveLog(registroLog, commited); commited.Commit(); flag = true; } } catch (Exception exception) { num = base.Registrar(exception, 205, num, item, true); continue; } return flag; } return false; }); return flag1; } public async Task Save(Auto auto) { Auto auto2 = await Task.Run(() => { Auto auto3; string str; try { using (UnitOfWork commited = Instancia.Commited) { TipoAcao tipoAcao = (auto.get_Id() == 0 ? 0 : 1); auto = (auto.get_Id() == 0 ? commited.get_AutoRepository().SaveOrUpdate(auto) : commited.get_AutoRepository().Merge(auto)); IPHostEntry hostEntry = Dns.GetHostEntry(Dns.GetHostName()); RegistroLog registroLog = new RegistroLog(); registroLog.set_Acao(tipoAcao); registroLog.set_Usuario(Recursos.Usuario); registroLog.set_DataHora(Funcoes.GetNetworkTime()); Auto auto1 = auto; JsonSerializerSettings jsonSerializerSetting = new JsonSerializerSettings(); jsonSerializerSetting.set_ReferenceLoopHandling(1); registroLog.set_Descricao(JsonConvert.SerializeObject(auto1, jsonSerializerSetting)); registroLog.set_EntidadeId(auto.get_Id()); registroLog.set_Tela(3); registroLog.set_Versao(LoginViewModel.VersaoAtual); registroLog.set_NomeMaquina(Environment.MachineName); registroLog.set_UsuarioMaquina(Environment.UserName); IPAddress[] addressList = hostEntry.AddressList; Func u003cu003e9_11 = AutoServico.u003cu003ec.u003cu003e9__1_1; if (u003cu003e9_11 == null) { u003cu003e9_11 = (IPAddress ip) => ip.AddressFamily == AddressFamily.InterNetwork; AutoServico.u003cu003ec.u003cu003e9__1_1 = u003cu003e9_11; } IPAddress pAddress = ((IEnumerable)addressList).FirstOrDefault(u003cu003e9_11); if (pAddress != null) { str = pAddress.ToString(); } else { str = null; } registroLog.set_Ip(str); base.SaveLog(registroLog, commited); commited.Commit(); auto3 = auto; } } catch (Exception exception) { auto3 = null; } return auto3; }); return auto2; } } }