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.Ferramentas; using Gestor.Model.Domain.Generic; namespace Gestor.Application.Servicos.Ferramentas; internal class TipoTarefaServico : BaseServico { internal async Task> BuscarTarefas() { int tries = 3; return await Task.Run(delegate { while (tries > 0) { try { UnitOfWork read = Instancia.Read; try { return read.TipoTarefaRepository.FindAll(); } finally { ((IDisposable)read)?.Dispose(); } } catch (Exception e) { tries = Registrar(e, (TipoErro)308, tries); } } return new List(); }); } internal async Task Save(TipoDeTarefa tipoTarefa) { int tries = 3; base.Sucesso = true; TipoDeTarefa tipoTarefaOriginal = tipoTarefa; return await Task.Run((Func)delegate { List list = new List(); tipoTarefa = tipoTarefaOriginal; while (tries > 0) { tipoTarefa = tipoTarefaOriginal; try { UnitOfWork commited = Instancia.Commited; try { bool num = ((DomainBase)tipoTarefa).Id != 0L; if (num) { list.Add(CreateLog(((DomainBase)tipoTarefa).Id, tipoTarefa, (TipoTela)52)); } tipoTarefa = ((((DomainBase)tipoTarefa).Id == 0L) ? commited.TipoTarefaRepository.SaveOrUpdate(tipoTarefa) : commited.TipoTarefaRepository.Merge(tipoTarefa)); if (!num) { list.Add(CreateLog(((DomainBase)tipoTarefa).Id, ((DomainBase)tipoTarefa).GetValorOriginal(), (TipoTela)52, (TipoAcao)0)); } SaveLog(list, commited); ((GenericUnitOfWork)commited).Commit(); return tipoTarefa; } finally { ((IDisposable)commited)?.Dispose(); } } catch (Exception e) { tries = Registrar(e, (TipoErro)306, tries, tipoTarefa); } } return tipoTarefaOriginal; }); } }