コード例 #1
0
        private void GetMember()
        {
            string screenName = Sitecore.Web.WebUtil.GetUrlName(0);

            // Verify user exists in telligent
            var telligentUser = TelligentService.GetUser(screenName);

            if (telligentUser == null || telligentUser.Username != screenName)
            {
                // TODO: display error?
                Sitecore.Diagnostics.Log.Info(String.Format("View Profile - Could not find user in telligent: {0}", screenName), this);
                Response.Redirect(MainsectionItem.GetHomeItem().GetUrl());
                return;
            }

            // Check member account
            MembershipManager mm = new MembershipManager();

            _profileMember = mm.GetMemberByScreenName(screenName);

            if (_profileMember == null)
            {
                // TODO: display error?
                Sitecore.Diagnostics.Log.Info(String.Format("View Profile - Could not find member with screen name: {0}", screenName), this);
                Response.Redirect(MainsectionItem.GetHomeItem().GetUrl());
                return;
            }
        }
コード例 #2
0
        public static MemberCardModel MemberCardModelFactory(string musername)
        {
            MembershipManager memMan = new MembershipManager();

            Member mUser = memMan.GetMemberByScreenName(musername);

            return(MemberCardModelFactory(mUser));
        }
コード例 #3
0
        public static GroupCardModel GroupCardModelFactory(GroupItem grpItem)
        {
            Member         owner    = null;
            GroupCardModel grpModel = new GroupCardModel();

            if ((grpItem != null))
            {
                string address = String.Empty;
                string xml     = String.Empty;
                try
                {
                    using (WebClient client = new WebClient())
                    {
                        client.Headers.Add("Rest-User-Token", TelligentService.TelligentService.TelligentAuth());
                        address = string.Format(TelligentService.TelligentService.GetApiEndPoint("groups/{0}/members/users.xml?MembershipType=Owner"), grpItem.GroupID.Text);

                        ///Approved??
                        //data["FriendshipState"] = Constants.TelligentFriendStatus.Approved.ToString();
                        xml = Encoding.UTF8.GetString(client.DownloadData(address));
                    }
                    XmlDocument document = new XmlDocument();
                    document.LoadXml(xml);
                    XmlNode childNode = document.SelectSingleNode("Response/Users");
                    if (childNode != null)
                    {
                        //Select first owner
                        string            username = childNode.FirstChild.SelectSingleNode("Username").InnerText;
                        MembershipManager mem      = new MembershipManager();
                        owner = mem.GetMemberByScreenName(username);
                        if (owner != null)
                        {
                            grpModel.ModeratorAvatarUrl = childNode.FirstChild.SelectSingleNode("AvatarUrl").InnerText;
                            grpModel.ModeratorName      = owner.ScreenName;
                            grpModel.ModeratorTitle     = Constants.TelligentRoles.Roles[Constants.TelligentRoles.Moderator];
                            grpModel.Owner = owner;
                        }
                        else    //Use default values
                        {
                            grpModel.ModeratorAvatarUrl = childNode.FirstChild.SelectSingleNode("AvatarUrl").InnerText;
                            grpModel.ModeratorName      = username;
                            grpModel.ModeratorTitle     = Constants.TelligentRoles.Roles[Constants.TelligentRoles.Moderator];
                        }
                        grpModel.ForumFunc = TelligentService.TelligentService.ReadForumsList;

                        grpModel.GrpItem      = grpItem;
                        grpModel.NumOfMembers = int.Parse(childNode.FirstChild.SelectSingleNode("Group/TotalMembers").InnerText);
                        grpModel.Description  = childNode.FirstChild.SelectSingleNode("Group/Description").InnerText;
                        grpModel.Title        = grpItem.NavigationTitle.Text; //childNode.FirstChild.SelectSingleNode("Group/Name").InnerText;
                    }
                }
                catch (Exception ex)
                {
                    Sitecore.Diagnostics.Error.LogError("Error in GetGroupOwner function.\nError:\n" + ex.Message);
                    grpModel = null;
                }
            }
            return(grpModel);
        }
コード例 #4
0
        public static bool SendThinkingOfYou(string senderScreenName, string recipientScreenName)
        {
            try
            {
                //Grab text for thank you from dictionary
                string strThinkMsg = String.Format(DictionaryConstants.ThinkingOfYouMessage, senderScreenName);

                //Send private message
                string newConvID = TelligentService.TelligentService.CreateConversation(senderScreenName, DictionaryConstants.ThinkingOfYouLabel, strThinkMsg, recipientScreenName);

                if (!String.IsNullOrEmpty(newConvID))
                {
                    //Send email
                    MembershipManager mm        = new MembershipManager();
                    Member            recipient = mm.GetMemberByScreenName(recipientScreenName);

                    if (recipient != null)
                    {
                        //Send email
                        string myAccountLink = Sitecore.Links.LinkManager.GetItemUrl(Sitecore.Context.Database.GetItem(Constants.Pages.MyAccount.ToString()));

                        BaseReply reply = Services.ExactTarget.ExactTargetService.InvokeEM21PrivateMessage(
                            new InvokeEM21PrivateMessageRequest
                        {
                            PreferredLanguage = recipient.PreferredLanguage,
                            ///TODO: change url to profile setting link
                            ContactSettingsLink = MembershipHelper.GetPublicProfileUrl(senderScreenName),
                            ///TODO: change URL to message centre link
                            MsgCenterLink           = myAccountLink,
                            PMText                  = strThinkMsg,
                            ReportInappropriateLink = "*****@*****.**",
                            ToEmail                 = recipient.Email
                        });
                    }
                }

                return(true);
            }
            catch (Exception ex)
            {
                Sitecore.Diagnostics.Error.LogError("Error sending thinking of you\n" + ex.Message);
            }

            return(false);
        }
コード例 #5
0
        public MemberCardModel(string username, Func <string, List <UserBadgeModel> > badgesPop = null)
        {
            MembershipManager memMan = new MembershipManager();

            Member mUser = memMan.GetMemberByScreenName(username);

            if (mUser != null)
            {
                initialize(mUser, badgesPop);
                //this.AvatarUrl = Constants.Settings.AnonymousAvatar; ///TODO: find Avatar URL
                //this.Children = mUser.Children.ConvertToChildCardModelList();
                //this.UserLabel = "Blogger"; //TODO: find role
                //this.UserLocation = Constants.Settings.DefaultLocation; //TODO: find location translate from zipcode
                //this.UserName = mUser.ScreenName;
                //this.Contactable = mUser.allowConnections;
                //this.ProfileLink = mUser.GetMemberPublicProfile();
                //if (badgesPop != null)
                //    Badges = badgesPop(username);
            }
        }
コード例 #6
0
        /// <summary>
        /// Log page view for subtopic filter nav
        /// </summary>
        private void LogViewForPopularity()
        {
            if (Sitecore.Context.PageMode.IsPreview)
            {
                return;
            }
            if (_currentItem.InheritsTemplate(DefaultArticlePageItem.TemplateId))
            {
                // Check for subtopic
                Item parent = _currentItem.Parent;
                if (parent != null &&
                    parent.InheritsTemplate(SubtopicLandingPageItem.TemplateId))
                {
                    // Setup user which page view will be logged against
                    var  mm     = new MembershipManager();
                    Guid viewer = Guid.Empty;
                    if (IsUserLoggedIn)
                    {
                        viewer = CurrentMember.MemberId;
                    }
                    else
                    {
                        // Look up shadow user
                        var shadowUser = mm.GetMemberByScreenName(Constants.UnauthenticatedMember_ScreeName);
                        if (shadowUser != null)
                        {
                            viewer = shadowUser.MemberId;
                        }
                    }

                    try
                    {
                        mm.LogSubtopicPageView(viewer, _currentItem.ID.ToGuid(), parent.ID.ToGuid());
                    }
                    catch (Exception ex)
                    {
                        Sitecore.Diagnostics.Log.Error("Error saving article view log", ex, this);
                    }
                }
            }
        }
コード例 #7
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (ProfileUser != null)
            {
                // TODO: since we manage telligent users, we should be storing data on our member to avoid
                // unneeded api lookups
                var mm = new MembershipManager();
                _member = mm.GetMemberByScreenName(ProfileUser.Username);

                if (_member == null)
                {
                    return;
                }

                ProfileUrl         = MembershipHelper.GetPublicProfileUrl(ProfileUser.Username);
                ProfileActivityUrl = MembershipHelper.GetPublicProfileActivityUrl(ProfileUser.Username);

                BindEvents();
                PopulateContent();
            }
        }