コード例 #1
0
ファイル: ProfileService.cs プロジェクト: ramonaerts/Kwetter
        public async Task <bool> EditProfile(EditProfileMessage message)
        {
            var user = await GetUserById(message.Id);

            if (user == null)
            {
                return(false);
            }

            if (user.Email != message.Email)
            {
                if (_userService.VerifyUniqueEmail(message.Email))
                {
                    return(false);
                }

                await _messagePublisher.PublishMessageAsync("EmailChangedMessage", new { Id = user.Id, Email = message.Email });
            }

            if (user.Nickname != message.Nickname)
            {
                await _messagePublisher.PublishMessageAsync("ProfileChangedMessage", new { Id = user.Id, Nickname = message.Nickname });
            }

            user.Email    = message.Email;
            user.Nickname = message.Nickname;

            _userContext.Update(user);
            await _userContext.SaveChangesAsync();

            return(true);
        }
コード例 #2
0
        public async Task <ApiResult> EditProfile(EditProfileMessage message)
        {
            try
            {
                var id = User.Claims.First(c => c.Type == ClaimTypes.Name).Value.ToString();

                if (message.Id != id)
                {
                    return(ApiResult.Forbidden("Not allowed"));
                }

                return(await _profileService.EditProfile(message) ? ApiResult.Success("Profile edited correctly") : ApiResult.BadRequest("Something went wrong"));
            }
            catch (System.Exception)
            {
                return(ApiResult.BadRequest("Something went wrong"));
            }
        }