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.Seguros; namespace Gestor.Application.Servicos.Ferramentas; internal class QualificacaoServico : BaseServico { internal async Task Save(Qualificacao qualificacao) { int tries = 3; base.Sucesso = true; Qualificacao qualificacaoOriginal = qualificacao; return await Task.Run((Func)delegate { while (tries > 0) { List list = new List(); qualificacao = qualificacaoOriginal; try { UnitOfWork commited = Instancia.Commited; try { list.Add(CreateLog(((DomainBase)qualificacao).Id, qualificacao, (TipoTela)48)); Qualificacao result = commited.QualificacaoRepository.SaveOrUpdate(qualificacao); SaveLog(list, commited); ((GenericUnitOfWork)commited).Commit(); return result; } finally { ((IDisposable)commited)?.Dispose(); } } catch (Exception e) { tries = Registrar(e, (TipoErro)229, tries, qualificacao); } } return qualificacaoOriginal; }); } }