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); }