public async Task <UserServiceLoginResponseDto> Login(LoginRegisterDto model) { var user = await _context.Users .Include(u => u.Profile) .Include(u => u.Group) .Include(u => u.Rank) .SingleOrDefaultAsync(u => u.Email == model.Email); if (user == null) { return(null); } var result = BCrypt.Net.BCrypt.EnhancedVerify(model.Password, user.Password); if (!result) { return(null); } var userCreatedDebates = await _context.Debates.Where(d => d.CreatedById == user.Id).ToListAsync(); var userParticipatingDebates = await _context.Debates.Where(d => d.CreatedById != user.Id).Include(d => d.Comments).Where(d => d.Comments.Any(c => c.CreatedBy == user)).ToListAsync(); var serviceResponse = new UserServiceLoginResponseDto(); serviceResponse.User = user; serviceResponse.CreatedDebates = userCreatedDebates; serviceResponse.ParticipatingDebates = userParticipatingDebates; return(serviceResponse); }
public async Task <UserServiceLoginResponseDto> GetUserByEmail(string email) { var user = await _context.Users .Include(u => u.Profile) .Include(u => u.Group) .Include(u => u.Rank) .SingleOrDefaultAsync(u => u.Email == email); if (user == null) { return(null); } var userCreatedDebates = await _context.Debates.Where(d => d.CreatedById == user.Id).ToListAsync(); var userParticipatingDebates = await _context.Debates.Where(d => d.CreatedById != user.Id).Include(d => d.Comments).Where(d => d.Comments.Any(c => c.CreatedBy == user)).ToListAsync(); var serviceResponse = new UserServiceLoginResponseDto(); serviceResponse.User = user; serviceResponse.CreatedDebates = userCreatedDebates; serviceResponse.ParticipatingDebates = userParticipatingDebates; return(serviceResponse); }