public async Task <UserDetailed> GetDetailedByName(string name) { var dbUser = await userManager.Users .Include(u => u.UserTopics) .ThenInclude(ut => ut.Topic) .FirstOrDefaultAsync(u => u.UserName == name); return(DbMapper.MapDbUserDetailed(dbUser)); }
public async Task <UserDetailed> UpdateUser(UserDetailed user) { var dbUser = await dbcontext.Users .Include(u => u.UserTopics) .SingleOrDefaultAsync(u => u.UserName == user.UserName); if (dbUser == null) { return(null); } dbUser.Email = user.Email; dbUser.FirstName = user.FirstName; dbUser.LastName = user.LastName; dbUser.Introduction = user.Introduction; dbUser.UserTopics.Clear(); foreach (var item in user.Topics) { var dbTopic = await dbcontext.Topics.SingleOrDefaultAsync(t => t.Id == item.Id); if (dbTopic != null) { dbUser.UserTopics.Add(new DbUserTopic() { Topic = dbTopic, TopicId = dbTopic.Id, User = dbUser, UserId = dbUser.Id, }); } } await dbcontext.SaveChangesAsync(); return(DbMapper.MapDbUserDetailed(dbUser)); }