using Gestor.Application.Helpers; using Gestor.Application.Servicos.Generic; using Gestor.Infrastructure.Repository.Interface; using Gestor.Infrastructure.UnitOfWork.Generic; using Gestor.Infrastructure.UnitOfWork.Logic; using Gestor.Model.Domain.Common; using Gestor.Model.Domain.Financeiro; using Gestor.Model.Domain.Generic; using System; using System.Collections.Generic; using System.Diagnostics; using System.Runtime.CompilerServices; using System.Threading.Tasks; namespace Gestor.Application.Servicos.Financeiro { internal class CentroServico : BaseServico { public CentroServico() { } public async Task> BuscarCentros() { int num = 3; List centros1 = await Task.Run>(() => { List centros; while (num > 0) { try { using (UnitOfWork read = Instancia.Read) { centros = read.get_CentroRepository().Find(); } } catch (Exception exception) { num = base.Registrar(exception, 153, num, null, true); continue; } return centros; } return new List(); }); return centros1; } public async Task Save(Centro centro) { int num = 3; base.Sucesso = true; Centro centro1 = centro; Centro centro2 = await Task.Run(() => { Centro centro3; bool flag; while (num > 0) { List registroLogs = new List(); centro = centro1; try { using (UnitOfWork commited = Instancia.Commited) { flag = (centro.get_Id() == 0 ? false : true); if (flag) { registroLogs.Add(base.CreateLog(centro.get_Id(), centro, 29)); } centro = (centro.get_Id() == 0 ? commited.get_CentroRepository().SaveOrUpdate(centro) : commited.get_CentroRepository().Merge(centro)); if (!flag) { registroLogs.Add(base.CreateLog(centro.get_Id(), centro.GetValorOriginal(), 29, 0)); } base.SaveLog(registroLogs, commited); commited.Commit(); centro3 = centro; } } catch (Exception exception) { num = base.Registrar(exception, 249, num, centro, true); continue; } return centro3; } return centro1; }); return centro2; } } }