Exemplo n.º 1
0
        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));
        }
Exemplo n.º 2
0
        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));
        }