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.Ferramentas; 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.Ferramentas { internal class ReciboServico : BaseServico { public ReciboServico() { } internal async Task> BuscarRecibos() { int num = 3; List recibos1 = await Task.Run>(() => { List recibos; while (num > 0) { try { using (UnitOfWork read = Instancia.Read) { recibos = read.get_ReciboRepository().BuscarRecibos(); } } catch (Exception exception) { num = base.Registrar(exception, 123, num, null, true); continue; } return recibos; } return new List(); }); return recibos1; } public async Task Delete(Recibo recibo) { int num = 3; bool flag1 = await Task.Run(() => { bool flag; while (num > 0) { List registroLogs = new List(); try { using (UnitOfWork commited = Instancia.Commited) { registroLogs.Add(base.CreateLog(recibo.get_Id(), recibo.GetValorOriginal(), 42, 2)); commited.get_ReciboRepository().Delete(recibo.get_Id()); base.SaveLog(registroLogs, commited); commited.Commit(); flag = true; } } catch (Exception exception) { num = base.Registrar(exception, 232, num, recibo, true); continue; } return flag; } return false; }); return flag1; } public async Task Save(Recibo recibo) { int num = 3; base.Sucesso = true; Recibo recibo1 = recibo; Recibo recibo2 = await Task.Run(() => { Recibo recibo3; bool flag; while (num > 0) { List registroLogs = new List(); recibo = recibo1; try { using (UnitOfWork commited = Instancia.Commited) { flag = (recibo.get_Id() == 0 ? false : true); if (flag) { registroLogs.Add(base.CreateLog(recibo.get_Id(), recibo, 42)); } recibo = (recibo.get_Id() == 0 ? commited.get_ReciboRepository().SaveOrUpdate(recibo) : commited.get_ReciboRepository().Merge(recibo)); if (!flag) { registroLogs.Add(base.CreateLog(recibo.get_Id(), recibo.GetValorOriginal(), 42, 0)); } base.SaveLog(registroLogs, commited); commited.Commit(); recibo3 = recibo; } } catch (Exception exception) { num = base.Registrar(exception, 231, num, recibo, true); continue; } return recibo3; } return recibo1; }); return recibo2; } } }