public bool ChangePassword(Guid userId, string oldPassword, string newPassword) { var res = false; var detail = _UserCollection.GetById(userId); if (detail != null) { if (Encrypting.BcryptVerify(oldPassword, detail.Password)) { // Change mật khẩu if (_UserCollection.ChangePassword(new UserFilter() { Id = userId }, Encrypting.Bcrypt(newPassword)) > 0) { res = true; } else { _Setting.Message.SetMessage("Không thể cập nhật thông tin mật khẩu!"); }; } else { _Setting.Message.SetMessage("Mật khẩu hiện tại không đúng!"); } } else { _Setting.Message.SetMessage("Không tìm thấy thông tin người dùng!"); } return(res); }
public Payee AddPayee(Guid userId, Payee payee) { Payee res = null; var detail = _UserCollection.GetById(userId); if (detail != null) { var linkingBank = _LinkingBankCollection.GetById(payee.LinkingBankId); if (linkingBank != null) { // get payee detail var payeeDetail = _UserCollection.GetByAccountNumber(payee.AccountNumber); if (payeeDetail != null) { if (string.IsNullOrEmpty(payee.MnemonicName)) { payee.MnemonicName = payeeDetail.Name; } payee.Id = Guid.NewGuid(); var countModified = _UserCollection.AddPayee(userId, payee); if (countModified > 0) { res = payee; } } } } return(res); }
public DeptReminder AddDeptReminder(Guid userId, DeptReminder deptReminder) { DeptReminder res = null; var userDetail = _UserCollection.GetById(userId); if (userDetail != null) { // requestor deptReminder.RequestorAccountNumber = userDetail.AccountNumber; deptReminder.RequestorId = userDetail.Id; var recipientUsers = _UserCollection.Get(new UserFilter() { AccountNumber = deptReminder.RecipientAccountNumber }); if (recipientUsers.Any()) { var recipientUser = recipientUsers.FirstOrDefault(); deptReminder.RecipientId = recipientUser.Id; while (true) { deptReminder.Code = _Context.MakeOTP(15); if (!_DeptReminderCollection.GetMany(new DeptReminderFilter() { Code = deptReminder.Code }).Any()) { break; } } _DeptReminderCollection.Create(deptReminder); if (deptReminder.Id != Guid.Empty) { // Send mail var sb = new StringBuilder(); sb.AppendFormat($"Dear {recipientUser.Name},"); sb.AppendFormat($"<br /><br /><b>Bạn đang được nhắc nợ từ số tài khoản {userDetail.AccountNumber} - {userDetail.Name}.</b>"); sb.AppendFormat($"<br /><br /><b>Vui lòng đăng nhập vào hệ thống để xem chi tiết.</b>"); sb.AppendFormat($"<br /><br /><b>Nếu yêu cầu không phải của bạn, vui lòng bỏ qua mail này.</b>"); if (_Context.SendMail("Thông báo nhắc nợ", sb.ToString(), recipientUser.Email, recipientUser.Name)) { res = deptReminder; } } } //var lstLinkingBank = _LinkingBankCollection.Get(new LinkingBankFilter() { Code = _Setting.BankCode }); //if (lstLinkingBank.Any()) //{ // deptReminder.Requestor.LinkingBankId = lstLinkingBank.FirstOrDefault().Id; // // check recipient // var recipientLinkingBank = _LinkingBankCollection.GetById(deptReminder.Recipient.LinkingBankId); // if (recipientLinkingBank != null) // { // if (recipientLinkingBank.Code != _Setting.BankCode) // other bank // { // /*TODO*/ // //// get user from linking bank // } // else // same bank // { // } // } //} } return(res); }
public bool PayIn(Guid userId, PayInfo payInfo) { var res = false; var details = _UserCollection.Get(new UserFilter() { AccountNumber = payInfo.AccountNumber, Username = payInfo.Username }); var detailsEmployee = _UserCollection.GetById(userId); if (details.Any() && detailsEmployee != null) { var detail = details.FirstOrDefault(); detail.CheckingAccount.AccountBalance += payInfo.Money; // luu giao dich var transfer = new Transfer(); transfer.Description = "Nạp tiền"; transfer.DestinationAccountNumber = detail.AccountNumber; transfer.DestinationLinkingBankId = Guid.Empty; transfer.Fee = 0; transfer.IsConfirmed = true; transfer.IsSenderPay = true; transfer.Money = payInfo.Money; transfer.SourceAccountNumber = detailsEmployee.AccountNumber; transfer.SourceLinkingBankId = Guid.Empty; transfer.IsPayIn = true; using (var sessionTask = _MongoDBClient.StartSessionAsync()) { var session = sessionTask.Result; session.StartTransaction(); try { _TransferCollection.Create(transfer); if (transfer.Id == Guid.Empty) { throw new Exception(); } var resUp = _UserCollection.UpdateCheckingAccount(new UserFilter() { AccountNumber = payInfo.AccountNumber, Id = detail.Id }, detail.CheckingAccount) > 0; if (!resUp) { throw new Exception(); } var transaction = new Transaction(); transaction.Id = Guid.Empty; transaction.ReferenceId = transfer.Id; transaction.Otp = ""; transaction.CreateTime = DateTime.Now; transaction.ExpireTime = transaction.CreateTime.AddMinutes(_Setting.TransferExpiration); transaction.Type = 0; transaction.ConfirmTime = transaction.CreateTime; _TransactionCollection.Create(transaction); if (transaction.Id == Guid.Empty) { throw new Exception(); } res = true; session.CommitTransactionAsync(); } catch (Exception) { session.AbortTransactionAsync(); } } } else { _Setting.Message.SetMessage("Không tìm thấy thông tin tài khoản!"); } return(res); }