public async Task <TaxpayerResponse> CreateAsync(Taxpayer taxpayer) { var existingTaxpayerByCPF = await _taxpayerRepository.GetByCPFAsync(taxpayer.CPF); if (existingTaxpayerByCPF != null) { return(TaxpayerResponse.CreateFail("Já existe um usuário na base com o CPF especificado.")); } try { await _taxpayerRepository.AddAsync(taxpayer); await _unitOfWork.CompleteAsync(); var basicWage = await _basicWageService.GetBasicWageDataAsync(); PopulateTaxData(taxpayer, basicWage); return(TaxpayerResponse.CreateSuccess(taxpayer)); } catch (Exception ex) { return(TaxpayerResponse.CreateFail(ex.Message)); } }
public async Task <TaxpayerResponse> UpdateAsync(int id, Taxpayer taxpayer) { try { var existingTaxpayer = await _taxpayerRepository.GetByIdAsync(id); if (existingTaxpayer == null) { return(TaxpayerResponse.CreateFail("Contribuinte não encontrado na base de dados para atualização.")); } existingTaxpayer.Name = taxpayer.Name; existingTaxpayer.CPF = taxpayer.CPF; existingTaxpayer.MonthlyGrossIncome = taxpayer.MonthlyGrossIncome; existingTaxpayer.NumberOfDependents = taxpayer.NumberOfDependents; _taxpayerRepository.Update(existingTaxpayer); await _unitOfWork.CompleteAsync(); var basicWage = await _basicWageService.GetBasicWageDataAsync(); PopulateTaxData(existingTaxpayer, basicWage); return(TaxpayerResponse.CreateSuccess(existingTaxpayer)); } catch (Exception ex) { return(TaxpayerResponse.CreateFail(ex.Message)); } }
public async Task <TaxpayerResponse> DeleteAsync(int id) { var existingTaxpayer = await _taxpayerRepository.GetByIdAsync(id); if (existingTaxpayer == null) { return(TaxpayerResponse.CreateFail("Contribuinte não encontrado na base de dados para exclusão.")); } try { _taxpayerRepository.Delete(existingTaxpayer); await _unitOfWork.CompleteAsync(); var basicWage = await _basicWageService.GetBasicWageDataAsync(); PopulateTaxData(existingTaxpayer, basicWage); return(TaxpayerResponse.CreateSuccess(existingTaxpayer)); } catch (Exception ex) { return(TaxpayerResponse.CreateFail(ex.Message)); } }