public async Task <UserDto> UpdateUser(EditUserDto input) { CheckUpdatePermission(); if (string.IsNullOrEmpty(input.EmailAddress)) { input.EmailAddress = RandomStringGeneratorUtil.GenerateFakeEmail(); } var user = await _userManager.GetUserByIdAsync(input.Id); //MapEditUserDtoToEntity(input, user); user.EmailAddress = input.EmailAddress; user.Name = input.Name; user.Surname = input.Surname; user.UserName = input.UserName; user.PhoneNumber = input.PhoneNumber; user.IsActive = input.IsActive; //Logger.Info("email for user: " + user.EmailAddress); CheckErrors(await _userManager.UpdateAsync(user)); if (input.RoleNames != null) { CheckErrors(await _userManager.SetRoles(user, input.RoleNames)); } return(await Get(input)); }
public async Task UpdatePersonalDetail(PersonalDetailDto input) { var user = await GetCurrentUserAsync(); user.Name = input.FirstName; user.Surname = input.LastName; user.PhoneNumber = input.PhoneNumber; user.EmailAddress = input.Email ?? RandomStringGeneratorUtil.GenerateFakeEmail(); await _userManager.UpdateAsync(user); }
public async Task <User> SignUpAsync(string name, string surname, string emailAddress, string phone, string userName, string plainPassword, bool isEmailConfirmed) { CheckForTenant(); var tenant = await GetActiveTenantAsync(); var user = new User { TenantId = tenant.Id, Name = name, Surname = surname, EmailAddress = emailAddress ?? RandomStringGeneratorUtil.GenerateFakeEmail(), PhoneNumber = phone, IsActive = true, UserName = userName, IsEmailConfirmed = isEmailConfirmed, Roles = new List <UserRole>() }; user.SetNormalizedNames(); foreach (var defaultRole in await _roleManager.Roles.Where(r => r.IsDefault).ToListAsync()) { user.Roles.Add(new UserRole(tenant.Id, user.Id, defaultRole.Id)); } await _userManager.InitializeOptionsAsync(tenant.Id); try { Logger.Info("About to save new user..."); CheckErrors(await _userManager.CreateAsync(user, plainPassword)); Logger.Info("Created new user, and next is to save..."); await CurrentUnitOfWork.SaveChangesAsync(); Logger.Info("S|aved new user."); } catch (Exception exc) { Logger.Error($"Err Message: {exc.Message}"); Logger.Error($"StackTrace: {exc.StackTrace}"); } return(user); }
public async Task <string> GenerateBankAccountTransferOtp(decimal amount, string comment, string phoneNumber) { var activityProperty = new Dictionary <string, string>(); activityProperty.Add("Amount", amount.ToString()); activityProperty.Add("Comment", comment); var otp = RandomStringGeneratorUtil.GenerateOtp(); var otpSession = new OtpSession { User = await GetCurrentUserAsync(), Id = otp, ActionProperty = activityProperty, PhoneNumberSentTo = phoneNumber }; _otpRepository.Insert(otpSession); return(otp.ToString()); }
private async Task GenerateHeaders(string tokenUrl) { //var oneCardProps = _config.GetSection("OneCardProperties"); //Logger.Info($"Connection string: {oneCardProps.GetValue<string>("AgentCode")}"); var timeStamp = (int)DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1)).TotalSeconds; Logger.Info($"Timestamp component: {timeStamp}"); var nonce = RandomStringGeneratorUtil.GenerateNonce();//.NewGuid().ToString().Replace("-", ""); Logger.Info($"Nonce: {nonce}"); const string clientId = "IKIA36A24822E7E30C61AAE5112A0F4608ADC2CA0997"; Logger.Info($"ClientId: {clientId}"); const string clientSecret = "i7BZAcxnUFNxmcP9FkOOVP3PpJSKcpeS3XsK6eYHHCQ="; Logger.Info($"ClientSecret: {clientSecret}"); var authorization = Convert.ToBase64String(Encoding.UTF8.GetBytes(clientId)); Logger.Info($"Authorization: Interswitch Auth {authorization}"); //const string generateTokenUrl = "https://saturn.interswitchng.com/api/v1/pwm/subscribers/2348022901232/tokens"; var encodedUrl = HttpUtility.UrlEncode(tokenUrl, Encoding.UTF8); var stringBuilder = new StringBuilder("Post"); //stringBuilder.Append(HttpMethod.Post.Method); //stringBuilder.Append("Post"); stringBuilder.Append("&"); stringBuilder.Append(encodedUrl); stringBuilder.Append("&"); stringBuilder.Append(timeStamp); stringBuilder.Append("&"); stringBuilder.Append(nonce); stringBuilder.Append("&"); stringBuilder.Append(clientId); stringBuilder.Append("&"); stringBuilder.Append(clientSecret); var signatureCipher = stringBuilder.ToString(); Logger.Info($"Signature Cipher: {signatureCipher}"); var sha = new SHA1Managed(); var signatureBytes = sha.ComputeHash(Encoding.UTF8.GetBytes(signatureCipher)); var signature = Convert.ToBase64String(signatureBytes); //var encodedSignature = Encoding.UTF8.GetBytes(signatureCipher); //var sha1Digest = new SHA1Managed(); //sha1Digest.BlockUpdate(encodedSignature, 0, encodedSignature.Length); //var signatureByte = new byte[sha1Digest.GetDigestSize()]; //var signature = Convert.ToBase64String(signatureByte); Logger.Info($"Signature: {signature}"); Logger.Info("Signature Method: SHA1"); Logger.Info("Terminal Id: 3NRX0001"); Logger.Info("Frontend Partner: APEX"); Logger.Info("After FrontEnd Apex..."); var stringContent = JsonConvert.SerializeObject(new { scope = "profile", grant_type = "client_credentials" }); Logger.Info("About creating content"); var httpContent = new StringContent(stringContent); var headers = httpContent.Headers; httpContent.Headers.ContentType = MediaTypeHeaderValue.Parse("application/x-www-form-urlencoded"); Logger.Info("Preparing authorization header..."); try { using (var httpClient = new HttpClient()) { httpClient.BaseAddress = new Uri("https://saturn.interswitchng.com/"); var basicAuthCredentials = $"{clientId}:{clientSecret}"; var basicAuthEnc = Convert.ToBase64String(Encoding.UTF8.GetBytes(basicAuthCredentials)); var authValue = $"Basic {basicAuthEnc}"; Logger.Info($"Auth value: {authValue}"); httpClient.DefaultRequestHeaders.Authorization = AuthenticationHeaderValue.Parse(authValue); Logger.Info("Lets get into HttpClient section..."); var response = await httpClient.PostAsync("passport/oauth/token", httpContent); Logger.Info("About to check status code"); Logger.Info($"status code: {response.StatusCode}"); Logger.Info($"response: {response.Content.ReadAsStringAsync()}"); if (response.IsSuccessStatusCode) { var responseStr = await response.Content.ReadAsStringAsync(); Logger.Info($"Access Token String: {responseStr}"); } else { Logger.Info("This thing is false..."); } } } catch (Exception exc) { Logger.Error(exc.Message); Logger.Error(exc.StackTrace); } }
public async Task <string> RedeemOneCardPin(string pinno, string comment, string requestPlatform, string platformSpecific) { var accountHolder = _accountHolderRepository.Single(p => p.UserId == AbpSession.UserId); var oneCardServiceClient = new EstelOneCardServicesClient(); var config = _configuration.GetSection("OneCardProperties"); var agentTransactionId = RandomStringGeneratorUtil.GenerateAgentTransactionId(); var pinRedeemRequest = new PinRedeemRequest { pin = "7F1359753577B274D717DC2E41BA1E51", agentcode = "APEX_PINRDM", pinno = pinno, agenttransid = agentTransactionId, serviceid = PinRedeemServiceIds.SavingsTopUp, comments = "just do it" }; var pinRedeemResponse = await oneCardServiceClient.getPinRedeemAsync(pinRedeemRequest); var pinRedeemLog = new OneCardPinRedeemLog(); try { //Log OneCardPinRedeem. Whether successful or not Logger.Info("About to prepare pin redeem log"); pinRedeemLog.Amount = decimal.Parse(string.IsNullOrEmpty(pinRedeemResponse.amount) ? decimal.Zero.ToString() : pinRedeemResponse.amount); pinRedeemLog.AccountHolder = accountHolder; pinRedeemLog.Comments = comment; pinRedeemLog.PinNo = pinno; pinRedeemLog.SerialNo = pinRedeemResponse.serialno; pinRedeemLog.ServiceId = PinRedeemServiceIds.SavingsTopUp; pinRedeemLog.VendorCode = pinRedeemResponse.vendorcode; pinRedeemLog.ProductCode = pinRedeemResponse.productcode; pinRedeemLog.AgentTransactionId = agentTransactionId; pinRedeemLog.ResultCode = pinRedeemResponse.resultcode; pinRedeemLog.ResultDescription = pinRedeemResponse.resultdescription; pinRedeemLog = _pinRedeemLogRepository.Insert(pinRedeemLog); CurrentUnitOfWork.SaveChanges(); } catch (Exception exc) { Logger.Error(exc.StackTrace); //Send an error log email to my inbox. For Monitoring. } if ("0".Trim().Equals(pinRedeemResponse.resultcode)) { var pinAmount = decimal.Parse(pinRedeemResponse.amount); var currentBalance = accountHolder.AvailableBalance + pinAmount; try { //Update AccountHolders balance. accountHolder.AvailableBalance = currentBalance; _accountHolderRepository.Update(accountHolder); //Log transaction var transactionLog = new TransactionLog(); transactionLog.Amount = pinAmount; transactionLog.BalanceAfterTransaction = currentBalance; transactionLog.AccountHolder = accountHolder; transactionLog.TransactionType = TransactionLog.TransactionTypes.Credit; transactionLog.TransactionService = TransactionServiceNames.OneCardPinRedeem; transactionLog.RequestOriginatingPlatform = requestPlatform; transactionLog.PlatformSpecificDetail = platformSpecific; transactionLog.Description = comment ?? string.Empty; transactionLog = _transactionLogRepository.Insert(transactionLog); //Update OneCardPinRedeemLog with the successful transaction. pinRedeemLog.TransactionLog = transactionLog; _pinRedeemLogRepository.Update(pinRedeemLog); } catch (Exception exc) { Logger.Error(exc.StackTrace); } //Send Sms Receipt //Send Email Receipt. } return(pinRedeemResponse.resultcode); }