예제 #1
0
        public virtual Profile CreateProfile(Profile profile)
        {
            if (!String.IsNullOrEmpty(profile.FriendlyName))
            {
                if (_profileRepository.CheckIfFriendlyNameExists(profile.FriendlyName, profile.Id))
                {
                    throw new KatushaFriendlyNameExistsException(profile);
                }
            }
            if (!(profile.Gender == (byte)Sex.Male || profile.Gender == (byte)Sex.Female))
            {
                throw new KatushaGenderNotExistsException(profile);
            }
            _profileRepository.Add(profile);
            _profileRepository.Save();

            var user = _userRepository.SingleAttached(p => p.Id == profile.UserId);

            user.Gender = profile.Gender;
            _userRepository.FullUpdate(user);
            _katushaGlobalCache.Delete("U:" + user.UserName);

            UpdateRavenProfile(profile.Id);
            _notificationService.ProfileCreated(profile);
            return(profile);
        }