public float CalculatePaschoalottoValue(Domain.Entities.Debt debt) { var dateFin = debt.FinalizedDate.Value; var dateDiff = dateFin.Date - debt.DueDate.Date; float paschoallotoValue = 0; if (debt.InterestType.Equals((int)InterestType.Simple)) { var m = debt.Value; var perc = debt.Interest / 100; var j = m * perc; j *= dateDiff.Days; var pascPerc = debt.PaschoalottoPercentage / 100; paschoallotoValue = (m + j) * pascPerc; } else { var m = debt.Value; var perc = debt.Interest / 100; var j = 1 + perc; var x = Math.Pow((double)j, (double)dateDiff.Days); paschoallotoValue = (float)(m * x); } return(paschoallotoValue); }
public async Task <Response> Handle(Request request, CancellationToken cancellationToken) { var debt = new Domain.Entities.Debt(request.ClientCPF, request.Value, request.DueDate, request.ContactPhone, request.MaxSplit, request.InterestType, request.Interest, request.PaschoalottoPercentage); _debtWriteRepository.Add(debt); await _uow.CommitAsync(); return(new Response(debt)); }
public static DebtSimple ToVMSimple(this Domain.Entities.Debt debt) { return(new DebtSimple { Id = debt.Id, ClientCPF = debt.ClientCPF, ContactPhone = debt.ContactPhone, DueDate = debt.DueDate, Value = debt.Value, MaxSplit = debt.MaxSplit, Interest = debt.Interest, InterestType = debt.InterestType, PaschoalottoPercentage = debt.PaschoalottoPercentage, Finalized = debt.Finalized }); }