public async Task <Result <AccountResponseDto> > Details([FromQuery] long id) { long?tenancyId = HttpContext.User.IsSuperRole() ? null : Convert.ToInt64(HttpContext.User.TenancyId()); var result = await _serviceProvider.GetRequiredService <AccountService>().GetDetails(id, tenancyId); if (!result.Success) { return(Result <AccountResponseDto> .ReFailure(result.Message, result.Status)); } List <object> roles = new List <object>(); if (result.Data.Department.Role != null && result.Data.Department.Role.Count > 0) { foreach (var value in result.Data.Department.Role.ToList()) { roles.Add(new { value.Id, value.Name, value.Enable, value.Description, value.CreateId, value.CreateTime, value.TenancyId }); } } if (result.Data.Role != null && result.Data.Role.Count > 0) { foreach (var value in result.Data.Role.ToList()) { roles.Add(new { value.Id, Nmae = value.Name, value.Enable, value.Description, value.CreateId, value.CreateTime, value.TenancyId }); } } AccountResponseDto data = _mapper.Map <AccountResponseDto>(result.Data); data.Roles = roles; return(Result <AccountResponseDto> .ReSuccess(data)); }
public async Task <IActionResult> AddAccount([FromBody] AccountRequestDto account) { AccountResponseDto createdAccount = await _service.AddAccount(account); if (createdAccount == null) { return(BadRequest(new { Data = "Account already exists", StatusCode = HttpStatusCode.BadRequest, Message = ResponseMessages.FAILED })); } return(Ok(new { Data = createdAccount, StatusCode = (int)HttpStatusCode.Created, ResponseMessages.CREATED })); }
public async Task <AccountResponseDto> Widthdraw(AccountDto accountDto) { AccountResponseDto accountResponse = new AccountResponseDto(); try { if (accountDto.Amount <= 0) { accountResponse.AccountNumber = accountDto.AccountNumber; accountResponse.Successful = false; accountResponse.Message = "please enter a valid amount"; return(accountResponse); } var accountRecord = await unitOfWork.Repository.GetById(accountDto.AccountNumber).ConfigureAwait(false); if (accountDto.Amount > accountRecord.Balance) { accountResponse.AccountNumber = accountDto.AccountNumber; accountResponse.Successful = false; accountResponse.Balance = accountRecord.Balance; accountResponse.Currency = accountRecord.Currency; accountResponse.Message = "transaction failed due to insufficient balance"; return(accountResponse); } accountRecord.Balance -= accountDto.Amount; accountResponse.AccountNumber = accountDto.AccountNumber; accountResponse.Successful = true; accountResponse.Balance = accountRecord.Balance; accountResponse.Currency = accountRecord.Currency; accountResponse.Message = "transaction successful"; unitOfWork.Repository.Update(accountRecord); await unitOfWork.Commit(); } catch (Exception ex) { accountResponse.AccountNumber = accountDto.AccountNumber; accountResponse.Successful = true; accountResponse.Message = "unable to process your request now. Please try again after sometime"; } return(accountResponse); }
public void GetAccountByName_Success() { using (BasicTestAppDbContext context = CreateInMemorianDB.CreateFreshInMemory()) { //Arrange string userId = "ValidName"; SalesController ctrl = GetController(context); //Act var result = ctrl.Get(userId); //Assert Assert.IsType <OkObjectResult>(result); OkObjectResult objectResult = (OkObjectResult)result; Assert.Equal(200, objectResult.StatusCode); Assert.IsAssignableFrom <AccountResponseDto>(objectResult.Value); AccountResponseDto response = (AccountResponseDto)objectResult.Value; Assert.Equal("Test", response.AccountName); Assert.True(response.CreatedBy.Contains("Fenix")); } }
public async Task <AccountResponseDto> Deposit(AccountDto accountDto) { AccountResponseDto accountResponse = new AccountResponseDto(); Account account; try { if (accountDto.Amount <= 0) { accountResponse.AccountNumber = accountDto.AccountNumber; accountResponse.Successful = false; accountResponse.Message = "please enter a valid amount"; return(accountResponse); } account = await unitOfWork.Repository.GetById(accountDto.AccountNumber); var balanceAmount = account.Balance + accountDto.Amount; accountResponse.AccountNumber = accountDto.AccountNumber; accountResponse.Successful = true; accountResponse.Balance = balanceAmount; accountResponse.Currency = account.Currency; accountResponse.Message = "transaction successful"; account.Balance = balanceAmount; unitOfWork.Repository.Update(account); await unitOfWork.Commit(); } catch (Exception ex) { accountResponse.AccountNumber = accountDto.AccountNumber; accountResponse.Successful = false; accountResponse.Message = $"invalid account {ex.Message}"; } return(accountResponse); }
public async Task <AccountResponseDto> Balance(long id) { AccountResponseDto accountResponse = new AccountResponseDto(); Account account; try { account = await unitOfWork.Repository.GetById(id); accountResponse.AccountNumber = account.Id; accountResponse.Successful = true; accountResponse.Balance = account.Balance; accountResponse.Currency = account.Currency; accountResponse.Message = "transaction successful"; return(accountResponse); } catch (Exception ex) { accountResponse.AccountNumber = id; accountResponse.Successful = false; accountResponse.Message = "unable to process your request now. Please try again after sometime"; } return(accountResponse); }
public AccountResponseDto Convert(AccountData acc, HashSet <string> requiredFields) { var res = new AccountResponseDto { Id = acc.Id, Email = acc.Email }; if (requiredFields.Contains(Names.FName)) { res.FName = _repo.FNameData.GetValue(acc.FNameIndex); } if (requiredFields.Contains(Names.SName)) { res.SName = _repo.SNameData.GetValue(acc.SNameIndex); } if (requiredFields.Contains(Names.Sex)) { res.Sex = _repo.SexData.GetValue(acc.Sex); } if (requiredFields.Contains(Names.Status)) { res.Status = _repo.StatusData.GetValue(acc.Status); } if (requiredFields.Contains(Names.City)) { res.City = _repo.CityData.GetValue(acc.CityIndex); } if (requiredFields.Contains(Names.Country)) { res.Country = _repo.CountryData.GetValue(acc.CountryIndex); } if (requiredFields.Contains(Names.Phone)) { res.Phone = acc.Phone; } if (requiredFields.Contains(Names.Birth)) { res.Birth = acc.Birth; } if (requiredFields.Contains(Names.Premium)) { var premium = new PremiumDto { Start = acc.PremiumStart, Finish = acc.PremiumFinish, }; res.Premium = premium; } return(res); }