Exemple #1
0
        public async Task <LoginViewModel> Login(LoginViewModel model)
        {
            try
            {
                var page = await base.InitPage();

                model.SetInitInfo(page);
                var customer = await _customerService.GetFromDbByEmailOrMobile(model.UserName);

                if (customer == null)
                {
                    model.AddMessage(ResourceKey.Account_Login_FailMessage);
                    return(model);
                }
                if (!await _customerService.ComparePassword(customer, model.Password))
                {
                    model.AddMessage(ResourceKey.Account_Login_FailMessage);
                    return(model);
                }
                if (customer.Status == EnumDefine.CustomerStatusEnum.Lock)
                {
                    model.AddMessage(ResourceKey.Account_Login_AccountIsLock);
                    return(model);
                }
                await Login(model.UserName, model.Remember, customer);

                return(model);
            }
            catch (Exception e)
            {
                _logger.LogError(e, e.Message, model);
                throw e;
            }
        }