summaryrefslogtreecommitdiff
path: root/Decompiler/Gestor.Application.Servicos.Seguros/SinistroServico.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Decompiler/Gestor.Application.Servicos.Seguros/SinistroServico.cs')
-rw-r--r--Decompiler/Gestor.Application.Servicos.Seguros/SinistroServico.cs385
1 files changed, 385 insertions, 0 deletions
diff --git a/Decompiler/Gestor.Application.Servicos.Seguros/SinistroServico.cs b/Decompiler/Gestor.Application.Servicos.Seguros/SinistroServico.cs
new file mode 100644
index 0000000..5a06c52
--- /dev/null
+++ b/Decompiler/Gestor.Application.Servicos.Seguros/SinistroServico.cs
@@ -0,0 +1,385 @@
+using System;
+using System.Collections.Generic;
+using System.Threading.Tasks;
+using Gestor.Application.Helpers;
+using Gestor.Application.Servicos.Generic;
+using Gestor.Infrastructure.UnitOfWork.Generic;
+using Gestor.Infrastructure.UnitOfWork.Logic;
+using Gestor.Model.API;
+using Gestor.Model.Common;
+using Gestor.Model.Domain.Common;
+using Gestor.Model.Domain.Generic;
+using Gestor.Model.Domain.Relatorios;
+using Gestor.Model.Domain.Seguros;
+
+namespace Gestor.Application.Servicos.Seguros;
+
+internal class SinistroServico : BaseServico
+{
+ internal async Task<List<ControleSinistro>> BuscarControles(long id)
+ {
+ int tries = 3;
+ return await Task.Run(delegate
+ {
+ while (tries > 0)
+ {
+ try
+ {
+ UnitOfWork read = Instancia.Read;
+ try
+ {
+ return read.ControleSinistroRepository.FindByIdItem(id);
+ }
+ finally
+ {
+ ((IDisposable)read)?.Dispose();
+ }
+ }
+ catch (Exception e)
+ {
+ tries = Registrar(e, (TipoErro)48, tries, id);
+ }
+ }
+ return new List<ControleSinistro>();
+ });
+ }
+
+ public async Task<Sinistro> BuscarSinistro(long id)
+ {
+ int tries = 3;
+ return await Task.Run((Func<Sinistro>)delegate
+ {
+ //IL_0059: Unknown result type (might be due to invalid IL or missing references)
+ //IL_005f: Expected O, but got Unknown
+ while (tries > 0)
+ {
+ try
+ {
+ UnitOfWork read = Instancia.Read;
+ try
+ {
+ return read.SinistroRepository.FindById(id);
+ }
+ finally
+ {
+ ((IDisposable)read)?.Dispose();
+ }
+ }
+ catch (Exception e)
+ {
+ tries = Registrar(e, (TipoErro)49, tries, id);
+ }
+ }
+ return new Sinistro();
+ });
+ }
+
+ public async Task<bool> Delete(Sinistro sinistro)
+ {
+ int tries = 3;
+ base.Sucesso = true;
+ return await Task.Run(delegate
+ {
+ while (tries > 0)
+ {
+ List<RegistroLog> list = new List<RegistroLog>();
+ try
+ {
+ UnitOfWork commited = Instancia.Commited;
+ try
+ {
+ list.Add(CreateLog(((DomainBase)sinistro).Id, ((DomainBase)sinistro).GetValorOriginal(), (TipoTela)26, (TipoAcao)2));
+ SinistroAuto val = commited.SinistroAutoRepository.FindBySinistroId(((DomainBase)sinistro).Id);
+ SinistroVida val2 = commited.SinistroVidaRepository.FindBySinistroId(((DomainBase)sinistro).Id);
+ if (val != null)
+ {
+ commited.SinistroAutoRepository.Delete(((DomainBase)val).Id);
+ }
+ if (val2 != null)
+ {
+ commited.SinistroVidaRepository.Delete(((DomainBase)val2).Id);
+ }
+ commited.SinistroRepository.Delete(((DomainBase)sinistro).Id);
+ SaveLog(list, commited);
+ ((GenericUnitOfWork)commited).Commit();
+ return true;
+ }
+ finally
+ {
+ ((IDisposable)commited)?.Dispose();
+ }
+ }
+ catch (Exception e)
+ {
+ tries = Registrar(e, (TipoErro)174, tries, sinistro);
+ }
+ }
+ return false;
+ });
+ }
+
+ public async Task<bool> DeleteControle(ControleSinistro controle, bool atualizarItem)
+ {
+ int tries = 3;
+ base.Sucesso = true;
+ return await Task.Run(async delegate
+ {
+ while (tries > 0)
+ {
+ List<RegistroLog> logs = new List<RegistroLog>();
+ try
+ {
+ UnitOfWork unitOfWork = Instancia.Commited;
+ try
+ {
+ if (atualizarItem)
+ {
+ Item val = unitOfWork.ItemRepository.FindById(((DomainBase)controle.Item).Id);
+ val.Sinistrado = false;
+ unitOfWork.ItemRepository.Merge(val);
+ }
+ List<Sinistro> list = unitOfWork.SinistroRepository.FindByControleId(((DomainBase)controle).Id);
+ foreach (Sinistro item in list)
+ {
+ logs.Add(CreateLog(((DomainBase)item).Id, ((DomainBase)item).GetValorOriginal(), (TipoTela)26, (TipoAcao)2));
+ if (!(await Delete(item)))
+ {
+ return false;
+ }
+ }
+ unitOfWork.ControleSinistroRepository.Delete(((DomainBase)controle).Id);
+ SaveLog(logs, unitOfWork);
+ ((GenericUnitOfWork)unitOfWork).Commit();
+ return true;
+ }
+ finally
+ {
+ ((IDisposable)unitOfWork)?.Dispose();
+ }
+ }
+ catch (Exception e)
+ {
+ tries = Registrar(e, (TipoErro)174, tries, controle);
+ }
+ }
+ return false;
+ });
+ }
+
+ public async Task<Sinistro> Save(Sinistro sinistro, long idramo)
+ {
+ int tries = 3;
+ base.Sucesso = true;
+ Sinistro sinistroSalvo = sinistro;
+ Funcoes.GetNetworkTime();
+ return await Task.Run((Func<Sinistro>)delegate
+ {
+ //IL_028e: Unknown result type (might be due to invalid IL or missing references)
+ //IL_0295: Expected O, but got Unknown
+ while (tries > 0)
+ {
+ List<RegistroLog> list = new List<RegistroLog>();
+ try
+ {
+ UnitOfWork commited = Instancia.Commited;
+ try
+ {
+ Item val = commited.ItemRepository.FindById(((DomainBase)sinistro.ControleSinistro.Item).Id);
+ val.Sinistrado = true;
+ sinistroSalvo.ControleSinistro.Item = commited.ItemRepository.Merge(val);
+ bool num = ((DomainBase)sinistroSalvo.ControleSinistro).Id == 0;
+ SinistroAuto sinistroAuto = sinistroSalvo.SinistroAuto;
+ SinistroVida val2 = sinistroSalvo.SinistroVida;
+ if (num)
+ {
+ sinistroSalvo.ControleSinistro = commited.ControleSinistroRepository.SaveOrUpdate(sinistroSalvo.ControleSinistro);
+ sinistroSalvo = commited.SinistroRepository.SaveOrUpdate(sinistroSalvo);
+ list.Add(CreateLog(((DomainBase)sinistroSalvo).Id, ((DomainBase)sinistroSalvo).GetValorOriginal(), (TipoTela)7, (TipoAcao)0));
+ long num2 = idramo;
+ long num3 = num2 - 5;
+ if ((ulong)num3 <= 5uL)
+ {
+ switch (num3)
+ {
+ case 0L:
+ goto IL_012e;
+ case 1L:
+ case 2L:
+ case 4L:
+ case 5L:
+ goto IL_0158;
+ case 3L:
+ goto IL_02d6;
+ }
+ }
+ if (num2 == 37)
+ {
+ goto IL_012e;
+ }
+ if (num2 == 53)
+ {
+ goto IL_0158;
+ }
+ }
+ else
+ {
+ list.Add(CreateLog(((DomainBase)sinistroSalvo).Id, sinistroSalvo, (TipoTela)7));
+ sinistroSalvo.ControleSinistro = commited.ControleSinistroRepository.Merge(sinistroSalvo.ControleSinistro);
+ sinistroSalvo = ((((DomainBase)sinistroSalvo).Id == 0L) ? commited.SinistroRepository.SaveOrUpdate(sinistroSalvo) : commited.SinistroRepository.Merge(sinistroSalvo));
+ long num2 = idramo;
+ long num4 = num2 - 5;
+ if ((ulong)num4 <= 5uL)
+ {
+ switch (num4)
+ {
+ case 0L:
+ goto IL_0247;
+ case 1L:
+ case 2L:
+ case 4L:
+ case 5L:
+ goto IL_028a;
+ case 3L:
+ goto IL_02d6;
+ }
+ }
+ if (num2 == 37)
+ {
+ goto IL_0247;
+ }
+ if (num2 == 53)
+ {
+ goto IL_028a;
+ }
+ }
+ goto IL_02d6;
+ IL_0247:
+ if (sinistroAuto != null)
+ {
+ sinistroAuto.Sinistro = sinistroSalvo;
+ sinistroAuto = ((((DomainBase)sinistroAuto).Id == 0L) ? commited.SinistroAutoRepository.SaveOrUpdate(sinistroAuto) : commited.SinistroAutoRepository.Merge(sinistroAuto));
+ sinistroSalvo.SinistroAuto = sinistroAuto;
+ }
+ goto IL_02d6;
+ IL_028a:
+ if (val2 == null)
+ {
+ val2 = new SinistroVida();
+ }
+ val2.Sinistro = sinistroSalvo;
+ val2 = ((((DomainBase)val2).Id == 0L) ? commited.SinistroVidaRepository.SaveOrUpdate(val2) : commited.SinistroVidaRepository.Merge(val2));
+ sinistroSalvo.SinistroVida = val2;
+ goto IL_02d6;
+ IL_012e:
+ sinistroAuto.Sinistro = sinistroSalvo;
+ sinistroAuto = commited.SinistroAutoRepository.SaveOrUpdate(sinistroAuto);
+ sinistroSalvo.SinistroAuto = sinistroAuto;
+ goto IL_02d6;
+ IL_0158:
+ val2.Sinistro = sinistroSalvo;
+ val2 = commited.SinistroVidaRepository.SaveOrUpdate(val2);
+ sinistroSalvo.SinistroVida = val2;
+ goto IL_02d6;
+ IL_02d6:
+ SaveLog(list, commited);
+ ((GenericUnitOfWork)commited).Commit();
+ return sinistroSalvo;
+ }
+ finally
+ {
+ ((IDisposable)commited)?.Dispose();
+ }
+ }
+ catch (Exception e)
+ {
+ tries = Registrar(e, (TipoErro)175, tries, sinistro);
+ }
+ }
+ return sinistro;
+ });
+ }
+
+ public async Task<List<Sinistro>> BuscarSinistro(Filtros filtro)
+ {
+ int tries = 3;
+ return await Task.Run(delegate
+ {
+ while (tries > 0)
+ {
+ try
+ {
+ UnitOfWork read = Instancia.Read;
+ try
+ {
+ return read.SinistroRepository.FindByData(filtro, false);
+ }
+ finally
+ {
+ ((IDisposable)read)?.Dispose();
+ }
+ }
+ catch (Exception e)
+ {
+ tries = Registrar(e, (TipoErro)176, tries, filtro);
+ }
+ }
+ return new List<Sinistro>();
+ });
+ }
+
+ public async Task<List<Sinistro>> BuscarSinistroPendente(Filtros filtro)
+ {
+ int tries = 3;
+ return await Task.Run(delegate
+ {
+ while (tries > 0)
+ {
+ try
+ {
+ UnitOfWork read = Instancia.Read;
+ try
+ {
+ return read.SinistroRepository.FindByData(filtro, true);
+ }
+ finally
+ {
+ ((IDisposable)read)?.Dispose();
+ }
+ }
+ catch (Exception e)
+ {
+ tries = Registrar(e, (TipoErro)176, tries, filtro);
+ }
+ }
+ return new List<Sinistro>();
+ });
+ }
+
+ public async Task<List<Sinistro>> BuscarSinistros(string numero)
+ {
+ int tries = 3;
+ return await Task.Run(delegate
+ {
+ while (tries > 0)
+ {
+ try
+ {
+ UnitOfWork read = Instancia.Read;
+ try
+ {
+ return read.SinistroRepository.FindNumeroSinistro(numero);
+ }
+ finally
+ {
+ ((IDisposable)read)?.Dispose();
+ }
+ }
+ catch (Exception e)
+ {
+ tries = Registrar(e, (TipoErro)177, tries, numero);
+ }
+ }
+ return new List<Sinistro>();
+ });
+ }
+}