public VoidResult CheckWalletActivationCode(int code)
        {
            try
            {
                var userId = ClaimPrincipalFactory.GetUserId(User);
                var user   = _repository.Users.FindByCondition(c => c.Id == userId).FirstOrDefault();

                var now = DateTime.Now.Ticks;
                var s   = _repository.UserActivation.FindByCondition(c =>
                                                                     c.UserId == user.Id && c.EndDateTime > now && c.LoginType == 3 && c.SendedCode == code).FirstOrDefault();
                if (s == null)
                {
                    var ress = VoidResult.GetFailResult("کد وارد شده جهت تغییر کلمه عبور صحیح نمی باشد.");
                    _logger.LogData(MethodBase.GetCurrentMethod(), ress, null, code);
                    return(ress);
                }

                var customer = _repository.Customer.FindByCondition(c => c.UserId == userId).FirstOrDefault();
                customer.HaveWallet = true;

                _repository.Customer.Update(customer);
                _repository.Save();
                var finalres = VoidResult.GetSuccessResult("کیف پول با موفقیت فعال شد .");
                _logger.LogData(MethodBase.GetCurrentMethod(), finalres, null, code);
                return(finalres);
            }
            catch (Exception e)
            {
                _logger.LogError(e, MethodBase.GetCurrentMethod(), code);
                return(VoidResult.GetFailResult(e.Message));
            }
        }
        public VoidResult SellerRegisterConfirm_UI()
        {
            try
            {
                var seller = _repository.Seller.FindByCondition(c => c.UserId == ClaimPrincipalFactory.GetUserId(User)).FirstOrDefault();

                if (seller == null)
                {
                    var ress = VoidResult.GetFailResult("فروشنده پیدا نشد!");
                    _logger.LogData(MethodBase.GetCurrentMethod(), ress, null);
                    return(ress);
                }

                var requiredDocumentList   = _repository.Document.FindByCondition(c => c.CatDocument.Rkey == 1 && c.IsRequired == true && c.Ddate == null && c.DaDate == null).ToList();
                var SellerUploadedDocument = _repository.SellerDocument.FindByCondition(c => c.SellerId == seller.Id && !string.IsNullOrWhiteSpace(c.FileUrl) && c.Document.IsRequired == true).ToList();

                if (requiredDocumentList.Count != SellerUploadedDocument.Count)
                {
                    var ress = VoidResult.GetFailResult("تمامی مدارک بارگزاری نشده است!");
                    _logger.LogData(MethodBase.GetCurrentMethod(), ress, null);
                    return(ress);
                }


                var finalres = VoidResult.GetSuccessResult();
                _logger.LogData(MethodBase.GetCurrentMethod(), finalres, null);
                return(finalres);
            }
            catch (Exception e)
            {
                _logger.LogError(e, MethodBase.GetCurrentMethod());
                return(VoidResult.GetFailResult(e.Message));
            }
        }
        public VoidResult SendCustomerWalletActivationCode()
        {
            try
            {
                var userId = ClaimPrincipalFactory.GetUserId(User);
                var user   = _repository.Users.FindByCondition(c => c.Id == userId).FirstOrDefault();

                var now = DateTime.Now.Ticks;
                if (_repository.UserActivation
                    .FindByCondition(c => c.UserId == userId && c.EndDateTime > now && c.LoginType == 3).Any())
                {
                    var ress = VoidResult.GetFailResult("کد فعالسازی قبلا برای شما ارسال گردیده است.");
                    _logger.LogData(MethodBase.GetCurrentMethod(), ress, null);
                    return(ress);
                }

                var random = new Random();
                var code   = random.Next(1000, 9999);

                user.UserActivation.Add(new UserActivation
                {
                    SendedCode  = code,
                    EndDateTime = DateTime.Now.AddMinutes(2).Ticks,
                    Cdate       = DateTime.Now.Ticks,
                    LoginType   = 3,
                    UserId      = userId
                });

                var sms      = new SendSMS();
                var bb       = sms.SendWalletActivationSms(user.Mobile.Value, code, user.FullName);
                var finalres = VoidResult.GetSuccessResult("کد فعال سازی برای کیف پول ، با موفقیت ارسال شد");
                _logger.LogData(MethodBase.GetCurrentMethod(), finalres, null);
                return(finalres);
            }
            catch (Exception e)
            {
                _logger.LogError(e, MethodBase.GetCurrentMethod());
                return(VoidResult.GetFailResult(e.Message));
            }
        }