Пример #1
0
        public IResult <IEnumerable <UserData> > GetUserWithRoles()
        {
            var functionName = MethodBase.GetCurrentMethod()?.Name;

            try
            {
                this._logger?.LogInformation(LogRecord.CreateLogStart(functionName));

                var users     = this._ctx.Users.ToList();
                var userRoles = this._ctx.UserRoles.ToList();
                var roles     = this._ctx.Roles.ToList();

                var result = new List <UserData>();
                foreach (var user in users)
                {
                    var userData = new UserData(user);
                    var ur       = userRoles.Where(o => o.UserId.Equals(user.Id)).ToList();
                    if (ur.Any())
                    {
                        foreach (var role in ur.Select(userRole =>
                                                       roles
                                                       .SingleOrDefault(o => o.Id.Equals(userRole.RoleId)))
                                 .Where(role => role != null))
                        {
                            userData.AddRole(role);
                        }
                    }

                    result.Add(userData);
                }

                return(new Result <IEnumerable <UserData> >(result));
            }
            catch (Exception ex)
            {
                this._logger?.LogError(LogRecord.CreateLogRecord(functionName, ex));
                return(new Result <IEnumerable <UserData> >(ex.Message));
            }
            finally
            {
                this._logger?.LogInformation(LogRecord.CreateLogFinish(functionName));
            }
        }
Пример #2
0
        public async Task <UserDto> UpdateAsync(Guid id, UpdateUserDto data)
        {
            UserData userData = await _userRepository.GetAsync(id);

            userData.NickName = data.Name;
            userData.Account  = data.Account;
            userData.Email    = data.Email;
            userData.Mobile   = data.Mobile;
            userData.UpdatePassword(data.Password);

            userData.UserRoles.Clear();
            foreach (var item in data.RoleIds)
            {
                userData.AddRole(GuidGenerator.Create(), item);
            }

            var result = await _userRepository.UpdateAsync(userData);

            return(ObjectMapper.Map <UserData, UserDto>(userData));
        }