public long Replace(DeptReminder deptReminder)
        {
            FilterDefinition <DeptReminder> filter = Builders <DeptReminder> .Filter.Eq(x => x.Id, deptReminder.Id);

            var res = _Collection.FindOneAndReplace(filter, deptReminder);

            if (res != null)
            {
                return(1);
            }
            return(0);
        }
 public void Create(DeptReminder deptReminder)
 {
     _Collection.InsertOne(deptReminder);
 }
 public bool UpdateDeptReminder(Guid userId, DeptReminder deptReminder)
 {
     throw new NotImplementedException();
 }
        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);
        }
        //[Authorize(Roles = "User")]
        public IActionResult AddDeptreminder([FromBody] DeptReminder deptReminder)
        {
            var res = _Service.AddDeptReminder(UserId, deptReminder);

            return(Ok(res));
        }