Trying to return Ok response but getting the exception:
Cannot access a disposed object.\nObject name: 'AsyncCursor
Getting this on first line in if condition
var users = await _userCollection.FindAsync(user => user.Phone == loginUser.phone);
// if user found then login
// else create empty doc
if (users.ToList().Count > 0)
{
var user = await users.FirstAsync();
string token = new ShirtDeck.Utils.JwtUtil(configuration).GenerateJWT(user);
return Ok(new { user = user, token = token });
}
Expected to read the first document from the list.
CodePudding user response:
when you call ToList, effectively you close cursor (users), so you should stop working with this cursor after that and proceed working with the cursor result (which you currently ignore).
CodePudding user response:
So it is solved, I saved the result in a list and used that:
var users = await _userCollection.FindAsync(user => user.Phone == loginUser.phone);
var userList = users.ToList(); // saved result to list
// if user found then login
// else create empty doc
if (userList.Count > 0)
{
var user = userList.First();
string token = new ShirtDeck.Utils.JwtUtil(configuration).GenerateJWT(user);
return Ok(new { user = user, token = token });
}
