public AccountEntity ChangeCurrentToOrganizationProfile(OrganizationProfile newProfile)
        {
            var passport = MvcContext.Current.UserPassport;

            MemberShip.OpenOrganizationService(passport, newProfile);

            AccountAuthentication.SyncIMAccount(passport);
            return(new AccountEntity(MvcContext.Current.ClientAccount, passport));
        }
        public AccountEntity ChangeToUser()
        {
            var           passport = MvcContext.Current.UserPassport;
            AccountEntity result   = null;

            if (passport.Profile is OrganizationProfile)
            {
                var profile = (passport.Profile as OrganizationProfile);
                profile.CurrentProfileType = ProfileType.UserProfile;
                var saved = profile.Save();
                if (saved)
                {
                    AccountAuthentication.SyncIMAccount(passport);
                    result = new AccountEntity(MvcContext.Current.ClientAccount, passport);
                }
            }
            return(result);
        }
        public bool ChangeProfile([FromBody] UserProfile entity)
        {
            if (entity == null)
            {
                return(false);
            }
            var profile       = MvcContext.Current.UserPassport.Profile;
            var syncIMAccount = false == string.IsNullOrEmpty(entity.Nickname) && profile.Nickname != entity.Nickname;

            profile.FillPropertiesFromEntity(entity, true);
            profile.PassportId = MvcContext.Current.PassportId;

            var saved = profile.Save();

            if (saved && syncIMAccount)
            {
                AccountAuthentication.SyncIMAccount(MvcContext.Current.UserPassport);
            }
            return(saved);
        }
        public AccountEntity OpenOrganizationService([FromBody] OrganizationProfile entity)
        {
            var passport = MvcContext.Current.UserPassport;

            if (null == entity)
            {
                entity            = new OrganizationProfile();
                entity.PassportId = passport.PassportId;
                entity.RealName   = passport.Profile.Nickname;
            }
            var success = MemberShip.OpenOrganizationService(passport, entity);

            AccountEntity result = null;

            if (success)
            {
                AccountAuthentication.SyncIMAccount(passport);
                result = new AccountEntity(MvcContext.Current.ClientAccount, passport);
            }

            return(result);
        }
        public AccountEntity ChangeCurrentToUserProfile()
        {
            var           passport = MvcContext.Current.UserPassport;
            AccountEntity result   = null;

            if ((passport.MultipleProfiles & ProfileType.UserProfile) != ProfileType.UserProfile)
            {
                passport.MultipleProfiles = passport.MultipleProfiles | ProfileType.UserProfile;
                passport.Save();
            }

            if (passport.Profile.CurrentProfileType != ProfileType.UserProfile)
            {
                var profile = passport.Profile;
                profile.CurrentProfileType = ProfileType.UserProfile;
                var saved = profile.Save();
                if (saved)
                {
                    AccountAuthentication.SyncIMAccount(passport);
                    result = new AccountEntity(MvcContext.Current.ClientAccount, passport);
                }
            }
            return(new AccountEntity(MvcContext.Current.ClientAccount, passport));
        }