public async Task <ILiability> UpdateAsync( int id, LiabilityDto liabilityDto) { await CheckAsync(liabilityDto); var liability = await GetAsync(id, false); var liabilityToUpdate = _mapper.Map(liabilityDto, liability as Liability); _context.Liabilities .Update(liabilityToUpdate); await _context.SaveChangesAsync(); await _context.Entry(liability) .Reference(x => x.Type) .LoadAsync(); _logger.LogInformation("{Tenant} | Updated Liability with Id={LiabilityId}, PublicKey={LiabilityPublicKey} and UserId={LiabilityUserId}", _context.Tenant.Log, liability.Id, liability.PublicKey, liability.UserId); return(liability); }
public async Task <ILiability> GetAsync( LiabilityDto liabilityDto, bool asNoTracking = true) { return(await GetQuery(asNoTracking) .FirstOrDefaultAsync(x => x.Name == liabilityDto.Name && x.TypeName == liabilityDto.TypeName && x.Value == liabilityDto.Value && x.MonthlyPayment == liabilityDto.MonthlyPayment && x.Years == liabilityDto.Years)); }
private async Task CheckAsync( LiabilityDto liabilityDto, string message = null) { if (liabilityDto == null) { throw new AiofFriendlyException(HttpStatusCode.BadRequest, message ?? $"Liability DTO cannot be NULL"); } else if (liabilityDto.TypeName != null && await GetTypeAsync(liabilityDto.TypeName) == null) { throw new AiofFriendlyException(HttpStatusCode.BadRequest, message ?? $"Liability type doesn't exist"); } else if (await GetAsync(liabilityDto) != null) { throw new AiofFriendlyException(HttpStatusCode.BadRequest, message ?? $"Liability already exists"); } }
public async Task <ILiability> AddAsync(LiabilityDto liabilityDto) { await _liabilityDtoValidator.ValidateAndThrowAsync(liabilityDto); await CheckAsync(liabilityDto); var liability = _mapper.Map <Liability>(liabilityDto); liability.UserId = _context.Tenant.UserId; await _context.Liabilities.AddAsync(liability); await _context.SaveChangesAsync(); _logger.LogInformation("{Tenant} | Created with Id={LiabilityId}, PublicKey={LiabilityPublicKey} and UserId={LiabilityUserId}", _context.Tenant.Log, liability.Id, liability.PublicKey, liability.UserId); return(liability); }
public async Task <IActionResult> AddLiabilityAsync([FromBody, Required] LiabilityDto liabilityDto) { return(Created(nameof(Liability), await _repo.AddAsync(liabilityDto))); }
public async Task <IActionResult> UpdateLiabilityAsync( [FromRoute, Required] int id, [FromBody, Required] LiabilityDto liabilityDto) { return(Ok(await _repo.UpdateAsync(id, liabilityDto))); }