public async Task<ActionResult<ProfileDto>> Edit(SaveProfileDto saveProfileDto)
        {
            var user = await _userRepository.Details(_userAccessor.GetCurrentUsername());

            user.DisplayName = saveProfileDto.DisplayName ?? user.DisplayName;
            await _unitOfWork.CompleteAsync();

            return Mapper.Map<ProfileDto>(user);
        }
Esempio n. 2
0
        public ValidateResult Save(SaveProfileDto dto)
        {
            var currentUserId = _userProvider.GetCurrentUserId();
            var user          = _dataService.GetDbSet <User>().GetById(currentUserId.Value);

            var lang = _userProvider.GetCurrentUser().Language;

            var result = _validationService.Validate(dto);

            if (string.IsNullOrEmpty(dto.Email))
            {
                result.AddError(nameof(dto.Email), "userEmailIsEmpty".Translate(lang),
                                ValidationErrorType.ValueIsRequired);
            }

            if (!string.IsNullOrEmpty(dto.Email) && !IsValidEmail(dto.Email))
            {
                result.AddError(nameof(dto.Email), "userEmailIsInvalid".Translate(lang),
                                ValidationErrorType.InvalidValueFormat);
            }

            if (_dataService.GetDbSet <User>().Any(x => x.Email == dto.Email && x.Id != user.Id))
            {
                result.AddError(nameof(dto.Email), "User.DuplicatedRecord".Translate(lang),
                                ValidationErrorType.DuplicatedRecord);
            }

            if (string.IsNullOrEmpty(dto.UserName))
            {
                result.AddError(nameof(dto.UserName), "userNameIsEmpty".Translate(lang),
                                ValidationErrorType.ValueIsRequired);
            }

            if (result.IsError)
            {
                return(result);
            }

            user.Email = dto.Email;
            user.Name  = dto.UserName;

            if (user.PoolingLogin != dto.PoolingLogin || user.PoolingPassword != dto.PoolingPassword)
            {
                user.PoolingLogin    = dto.PoolingLogin;
                user.PoolingPassword = dto.PoolingPassword;

                if (!string.IsNullOrEmpty(dto.PoolingLogin) && !string.IsNullOrEmpty(dto.PoolingPassword))
                {
                    using (var pooling = new PoolingIntegration(user,
                                                                _dataService, _serviceProvider))
                        pooling.Init();
                }
            }

            user.FmCPLogin    = dto.FmCPLogin;
            user.FmCPPassword = dto.FmCPPassword;

            _dataService.SaveChanges();

            return(result);
        }
 public ValidateResult Save([FromBody] SaveProfileDto dto)
 {
     return(profileService.Save(dto));
 }