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.Financeiro; using Gestor.Model.Domain.Generic; 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.Financeiro { internal class PlanoServico : BaseServico { public PlanoServico() { } public async Task> BuscarPlanos() { int num = 3; List planos1 = await Task.Run>(() => { List planos; while (num > 0) { try { using (UnitOfWork read = Instancia.Read) { planos = read.get_PlanosRepository().Find(); } } catch (Exception exception) { num = base.Registrar(exception, 167, num, null, true); continue; } return planos; } return new List(); }); return planos1; } public async Task Save(Plano plano) { int num = 3; base.Sucesso = true; Plano plano2 = plano; Plano plano3 = await Task.Run(() => { Plano plano4; string str; while (num > 0) { plano = plano2; try { using (UnitOfWork commited = Instancia.Commited) { TipoAcao tipoAcao = (plano.get_Id() == 0 ? 0 : 1); plano = (plano.get_Id() == 0 ? commited.get_PlanoRepository().SaveOrUpdate(plano) : commited.get_PlanoRepository().Merge(plano)); IPHostEntry hostEntry = Dns.GetHostEntry(Dns.GetHostName()); RegistroLog registroLog = new RegistroLog(); registroLog.set_Acao(tipoAcao); registroLog.set_Usuario(Recursos.Usuario); registroLog.set_DataHora(Funcoes.GetNetworkTime()); Plano plano1 = plano; JsonSerializerSettings jsonSerializerSetting = new JsonSerializerSettings(); jsonSerializerSetting.set_ReferenceLoopHandling(1); registroLog.set_Descricao(JsonConvert.SerializeObject(plano1, jsonSerializerSetting)); registroLog.set_EntidadeId(plano.get_Id()); registroLog.set_Tela(27); registroLog.set_Versao(LoginViewModel.VersaoAtual); registroLog.set_NomeMaquina(Environment.MachineName); registroLog.set_UsuarioMaquina(Environment.UserName); IPAddress[] addressList = hostEntry.AddressList; Func u003cu003e9_01 = PlanoServico.u003cu003ec.u003cu003e9__0_1; if (u003cu003e9_01 == null) { u003cu003e9_01 = (IPAddress ip) => ip.AddressFamily == AddressFamily.InterNetwork; PlanoServico.u003cu003ec.u003cu003e9__0_1 = u003cu003e9_01; } IPAddress pAddress = ((IEnumerable)addressList).FirstOrDefault(u003cu003e9_01); if (pAddress != null) { str = pAddress.ToString(); } else { str = null; } registroLog.set_Ip(str); base.SaveLog(registroLog, commited); commited.Commit(); plano4 = plano; } } catch (Exception exception) { num = base.Registrar(exception, 250, num, plano, true); continue; } return plano4; } return plano2; }); return plano3; } } }