public async Task <ApiResponseDto <bool> > AddFirstTimeUserTransaction(FirstTimeUserTransactionRegisterationDto registerationDto) { var merchantToRegister = registerationDto.Merchant; var merchantBankingDetails = registerationDto.MerchantBankingDetails; var buyerToRegiser = registerationDto.Buyer; var buyerBankingDetails = registerationDto.BuyerBankingDetails; await _authServices.Register(merchantToRegister); await _authServices.Register(buyerToRegiser); var merchant = await _userRepo.FindUserByEmail(merchantToRegister.Email); var buyer = await _userRepo.FindUserByEmail(buyerToRegiser.Email); if (merchant == null || buyer == null) { return(new ApiResponseDto <bool>(500, "An error occured while creating transaction, please try again", "Error creating transaction", false)); } await _bankingService.SaveBankingDetails((long)merchant.Id, merchantBankingDetails); await _bankingService.SaveBankingDetails((long)buyer.Id, buyerBankingDetails); var transaction = new Transaction() { Code = await GenerateTransactionCode(), ProductName = registerationDto.ProductName, Category = registerationDto.Category, Charges = registerationDto.Charges, Description = registerationDto.Description, Merchant = merchant, Buyer = buyer }; _transRepo.AddTransaction(transaction); var isUpdated = await _transRepo.SaveChanges(); if (!isUpdated) { return(new ApiResponseDto <bool>(500, "An error occured while creating transaction, login in to your account and try again", "Error creating transaction", false)); } await _mailingServices.SendTransactionMail(merchant, buyer); await _mailingServices.SendTransactionMail(buyer, merchant); return(new ApiResponseDto <bool>(200, "Transaction successfully created, check your email for transaction details", null, true)); }
public async Task <IActionResult> SaveBankingDetails(long userId, [FromBody] BankingDetailsRegistrationDto bankingDetailsRegistrationDto) { if (!_customAuth.IsUserAllowedAccess(userId, HttpContext)) { return(StatusCode(401)); } var response = await _bankingDetailsServices.SaveBankingDetails(userId, bankingDetailsRegistrationDto); return(StatusCode(response.Status, response)); }