public async Task <IResponse <User> > Authenticate(long mobileNumber, string password) { var user = await _userRepo.FirstOrDefaultAsync(conditions : x => x.MobileNumber == mobileNumber, includeProperties : null); if (user == null) { return new Response <User> { Message = ServiceMessage.InvalidUsernameOrPassword } } ; if (!user.IsActive) { return new Response <User> { Message = ServiceMessage.AccountIsBlocked } } ; var hashedPassword = HashGenerator.Hash(password); if (user.Password != hashedPassword) { FileLoger.Message($"UserService/Authenticate-> Invalid Password Login ! Username:{mobileNumber} Password:{password}"); return(new Response <User> { Message = ServiceMessage.InvalidUsernameOrPassword }); } //if (user.NewPassword == hashedPassword) //{ // user.Password = user.NewPassword; // user.NewPassword = null; //} user.LastLoginDateMi = DateTime.Now; user.LastLoginDateSh = PersianDateTime.Now.ToString(PersianDateTimeFormat.Date); _userRepo.Update(user); var saveResult = await _appUow.ElkSaveChangesAsync(); return(new Response <User> { IsSuccessful = saveResult.IsSuccessful, Message = saveResult.Message, Result = user }); }