public async Task <IHttpActionResult> CreateNewIncomeRecord(long userId, IncomeForCreateDto incomeForCreateDto) { if (!IsUserAuthorized(userId)) { return(Unauthorized()); } var bankAccountId = incomeForCreateDto.BankAccountId; var userFromDb = await _unitOfWork.Users.GetUserData(userId); if (!userFromDb.BankAccounts.Any(b => b.Id == bankAccountId)) { return(BadRequest("Current User doesn't own this account!")); } var incomeForDb = _unitOfWork.Incomes.AddMoneyToBankAccount(userId, userFromDb, incomeForCreateDto, _mapper); if (await _unitOfWork.Complete() > 0) { var incomesList = _mapper.Map <IncomeForListDto>(incomeForDb); return(Created(new Uri(Request.RequestUri + "/" + incomeForDb.Id), incomesList)); } return(BadRequest("An error happened while creating new income!")); }
public Income AddMoneyToBankAccount(long userId, User userFromDb, IncomeForCreateDto incomeForCreateDto, IMapper mapper) { var bankAccountId = incomeForCreateDto.BankAccountId; var bankAccountToUpdate = userFromDb.BankAccounts.FirstOrDefault(b => b.Id == bankAccountId); bankAccountToUpdate.Ballance += incomeForCreateDto.Ammount; incomeForCreateDto.UserId = userId; var incomeForDb = mapper.Map <Income>(incomeForCreateDto); incomeForDb.NewBallance = bankAccountToUpdate.Ballance; Add(incomeForDb); return(incomeForDb); }