public ActionResult RecoverPassword(VerifyAccount fwd)
 {
     if (ModelState.IsValid)
     {
         var UserEmail = db.Users_Data.Where(m => m.user_email_id == fwd.email).SingleOrDefault();
         if (UserEmail != null && UserEmail.otp_key == fwd.otp_text)
         {
             DateTime startTime = (DateTime)UserEmail.otp_time;
             DateTime endTime   = DateTime.Now;
             TimeSpan span      = endTime.Subtract(startTime);
             if (span.TotalMinutes <= 5)
             {
                 UserEmail.user_web_pwd    = fwd.password;
                 db.Entry(UserEmail).State = EntityState.Modified;
                 db.SaveChanges();
             }
             else
             {
                 ModelState.AddModelError("", "OTP has expired!, Please try again");
             }
             return(View("Reset"));
         }
         else
         {
             ModelState.AddModelError("", "Please check your OTP");
         }
     }
     return(View());
 }
Пример #2
0
        public async Task <AccountNumberVerification> VerifyAccountNumber(VerifyAccount request)
        {
            var response = new AccountNumberVerification();

            try
            {
                var    gosGatewayClient = _httpClientFactory.CreateClient("GOSDEFAULTGATEWAY");
                string authorization    = _accessor.HttpContext.Request.Headers["Authorization"];
                gosGatewayClient.DefaultRequestHeaders.Add("Authorization", authorization);

                var jsonContent = JsonConvert.SerializeObject(request);
                var buffer      = Encoding.UTF8.GetBytes(jsonContent);
                var byteContent = new ByteArrayContent(buffer);
                byteContent.Headers.ContentType = new MediaTypeHeaderValue("application/json");

                var result = await gosGatewayClient.PostAsync(ApiRoutes.FinanceServerRequest.VERIFY_ACCOUNT_NUMBER, byteContent);

                var resultString = await result.Content.ReadAsStringAsync();

                return(JsonConvert.DeserializeObject <AccountNumberVerification>(resultString));
            }
            catch (Exception ex)
            {
                #region Log error
                var errorCode = ErrorID.Generate(4);
                _logger.Error($"ErrorID : {errorCode} Ex : {ex?.Message ?? ex?.InnerException?.Message} ErrorStack : {ex?.StackTrace}");
                response.status = "failed";
                return(response);

                #endregion
            }
        }
Пример #3
0
        public bool UpdateUrlImage(string userId, string urlImage)
        {
            DateTime now = DateTime.Now;

            try
            {
                _log.LogInformation("UPDATE URL VERIFY IMAGE. - START");
                var verifyAccount = _verifyAccountRepository.FindSingle(n => n.UserId == userId);

                if (verifyAccount == null)
                {
                    verifyAccount = new VerifyAccount
                    {
                        UserId            = userId,
                        AuthentiCateImage = urlImage,
                        CreatedDate       = now,
                        UpdatedDate       = now,
                        IdNumber          = string.Empty,
                        IsProfileVerified = false,
                        Status            = ProfileVerifyStatus.PendingVerified
                    };
                    _verifyAccountRepository.Add(verifyAccount);
                    _unitOfWork.Commit();
                    return(true);
                }
                else
                {
                    if (verifyAccount.IsProfileVerified)
                    {
                        //Tài khoản đã được xác thực, không cho update thông tin
                        return(false);
                    }
                    else
                    {
                        //Add thêm hình vào
                        verifyAccount.AuthentiCateImage += string.IsNullOrEmpty(verifyAccount.AuthentiCateImage)? urlImage : $"|{urlImage}";
                        verifyAccount.UpdatedDate        = now;
                        verifyAccount.Status             = ProfileVerifyStatus.PendingVerified;
                        _verifyAccountRepository.Update(verifyAccount);

                        var result = _unitOfWork.Commit() > 0;
                        _log.LogInformation("UPDATE URL VERIFY IMAGE. - END");
                        return(result);
                    }
                }
            }
            catch (Exception ex)
            {
                _log.LogError($"UPDATE IMAGE DATA URL ERROR. \n {ex.ToString()}");
                return(false);
            }
        }
        public ActionResult IdentifyAccount(UserLogin email_id)
        {
            var UserEmail = db.Users_Data.Where(m => m.user_email_id == email_id.email).SingleOrDefault();

            if (UserEmail != null)
            {
                try
                {
                    MailMessage mail       = new MailMessage();
                    SmtpClient  SmtpServer = new SmtpClient("smtp.gmail.com");

                    mail.From = new MailAddress("*****@*****.**");
                    mail.To.Add(UserEmail.user_email_id);
                    mail.Subject = "Your BPAS Account | Password Reset Action";
                    string password = System.Web.Security.Membership.GeneratePassword(6, 0);

                    /**
                     * Inserting in to Database
                     */
                    UserEmail.otp_key         = password;
                    UserEmail.otp_time        = DateTime.Now;
                    db.Entry(UserEmail).State = EntityState.Modified;
                    db.SaveChanges();


                    mail.Body = "Let's get you back into your account .Please use this one time password: "******" ";

                    SmtpServer.Port        = 587;
                    SmtpServer.Credentials = new System.Net.NetworkCredential("*****@*****.**", "Bpas2018");
                    SmtpServer.EnableSsl   = true;

                    SmtpServer.Send(mail);

                    VerifyAccount fgt = new VerifyAccount();
                    fgt.email = UserEmail.user_email_id;

                    return(View("RecoverPassword", fgt));
                }
                catch (Exception ex)
                {
                    log.Debug("checking" + ex);
                }
            }
            else
            {
                ModelState.AddModelError("", "Emaild doesn't exist");
            }


            return(View());
        }
Пример #5
0
        public async Task <bool> UpdateIdNumberAndFullName(string userId, string fullName, string idNumber)
        {
            DateTime now           = DateTime.Now;
            var      verifyAccount = _verifyAccountRepository.FindSingle(n => n.UserId == userId);

            if (verifyAccount == null)
            {
                verifyAccount = new VerifyAccount
                {
                    UserId            = userId,
                    IdNumber          = idNumber,
                    CreatedDate       = now,
                    UpdatedDate       = now,
                    IsProfileVerified = false,
                    AuthentiCateImage = string.Empty,
                    Status            = ProfileVerifyStatus.NotVerified
                };
                _verifyAccountRepository.Add(verifyAccount);
            }
            else
            {
                //Nếu tài khoản đã được xác minh thì không cho thay đổi thông tin số cmnd
                if (!verifyAccount.IsProfileVerified)
                {
                    verifyAccount.IdNumber = idNumber;
                    _verifyAccountRepository.Update(verifyAccount);
                }
            }

            //Update thông tin Họ tên
            var user = await _userManager.FindByIdAsync(userId);

            user.FullName = fullName;
            await _userManager.UpdateAsync(user);

            _unitOfWork.Commit();
            return(true);
        }
Пример #6
0
        public async Task <SupplierAccountRegRespObj> Handle(AddUpdateBankAccountdetailCommand request, CancellationToken cancellationToken)
        {
            var response = new SupplierAccountRegRespObj {
                Status = new APIResponseStatus {
                    IsSuccessful = false, Message = new APIResponseMessage()
                }
            };

            try
            {
                var user = await _serverRequest.UserDataAsync();

                var banks = await _financeServer.GetAllBanksAsync();

                if (banks.bank.Count() == 0)
                {
                    response.Status.Message.FriendlyMessage = "Bank Not Found";
                    return(response);
                }
                var supplierAcccount = banks.bank.FirstOrDefault(q => q.BankGlId == request.Bank);

                if (supplierAcccount == null)
                {
                    response.Status.Message.FriendlyMessage = "Unidentified Selected Bank";
                    return(response);
                }

                var verificationObj = new VerifyAccount();
                verificationObj.account_bank   = supplierAcccount.BankCode;
                verificationObj.account_number = request.AccountNumber;
                var verificationRresponse = await _financeServer.VerifyAccountNumber(verificationObj);

                if (string.IsNullOrEmpty(verificationRresponse.status))
                {
                    response.Status.Message.FriendlyMessage = verificationRresponse.message;
                    //return response;
                }
                if (verificationRresponse.status != "success")
                {
                    response.Status.Message.FriendlyMessage = verificationRresponse.message;
                    //return response;
                }

                cor_bankaccountdetail item = new cor_bankaccountdetail();
                item.Deleted             = false;
                item.CreatedOn           = request.SupplierId > 0 ? (DateTime?)null : DateTime.Now;
                item.CreatedBy           = user != null? user.UserName : "";
                item.UpdatedBy           = user != null ? user.UserName : "";
                item.AccountName         = request.AccountName;
                item.AccountNumber       = request.AccountNumber;
                item.BankAccountDetailId = request.BankAccountDetailId;
                item.BVN        = request.BVN;
                item.SupplierId = request.SupplierId;
                item.Bank       = request.Bank;

                await _supRepo.AddUpdateBankAccountdetailsAsync(item);

                response.Status.Message.FriendlyMessage = "Successful";
                response.Status.IsSuccessful            = true;
                return(response);
            }
            catch (Exception ex)
            {
                #region Log error to file
                var errorCode = ErrorID.Generate(4);
                _logger.Error($"ErrorID : {errorCode} Ex : {ex?.Message ?? ex?.InnerException?.Message} ErrorStack : {ex?.StackTrace}");
                return(new SupplierAccountRegRespObj
                {
                    Status = new APIResponseStatus
                    {
                        IsSuccessful = false,
                        Message = new APIResponseMessage
                        {
                            FriendlyMessage = "Error occured!! Unable to process item",
                            MessageId = errorCode,
                            TechnicalMessage = $"ErrorID : {errorCode} Ex : {ex?.Message ?? ex?.InnerException?.Message} ErrorStack : {ex?.StackTrace}"
                        }
                    }
                });

                #endregion
            }
        }
Пример #7
0
        public async Task <ActionResult> VerifyBigDogAccount(VerifyBigDogAccountViewModel model, string SSHUser, string SSHPass)
        {
            // Make sure there is actually information. Otherwise we just return them to the form.
            if (!string.IsNullOrEmpty(SSHUser) && !string.IsNullOrEmpty(SSHPass))
            {
                bool error = false;

                model.QuotaRecommendation = Convert.ToString(Accessors.MINIMUM_QUOTA) + "Gb+";

                // Check if they have sufficient permissions.
                if (VerifyAccount.VerifyPermissions(SSHUser, SSHPass))
                {
                    model.PermissionsResult = "Your permissions validated successfully!";
                }

                else
                {
                    model.PermissionsResult = ErrorHandling.error;
                    error = true;
                }

                // Check if they have sufficient quota.
                if (VerifyAccount.VerifyQuota(SSHUser, SSHPass))
                {
                    model.QuotaResult = "You have sufficient quota!";
                }

                else
                {
                    model.QuotaResult = ErrorHandling.error;
                    error             = true;
                }

                // Get the user.
                ApplicationUser user = UserManager.FindById(User.Identity.GetUserId());

                // If there are no errors, the account is good to go.
                if (error)
                {
                    user.ClusterAccountVerified = false;
                }

                else
                {
                    user.ClusterAccountVerified = true;
                    model.Success = true;
                }

                // Save the user information.
                IdentityResult result = await UserManager.UpdateAsync(user);

                if (!ModelState.IsValid)
                {
                    throw new Exception("The model passed is not correct and must be investigated.");
                }

                return(View(model));
            }

            else
            {
                model.Error = "The username and password field cannot be blank.";

                return(View(model));
            }
        }