protected void Button_Unfollow_Click(object sender, EventArgs e) { string userID = (string)Session["userID"]; string targetUserID = (string)Request.QueryString["id"]; FollowsData follows = new FollowsData(MapPath(".")); follows.RemoveFollow(userID, "user", targetUserID); ActivitiesData activities = new ActivitiesData(MapPath(".")); activities.AddActivity("followUser", targetUserID, userID); ShowFollowingStatus(); }
protected void Button_Follow_Click(object sender, EventArgs e) { string userID = (string)Session["userID"]; string fontID = (string)Request.QueryString["id"]; FollowsData follows = new FollowsData(MapPath(".")); follows.AddFollow(userID, "font", fontID); ActivitiesData activities = new ActivitiesData(MapPath(".")); activities.AddActivity("followFont", fontID, userID); ShowFollowing(); }
protected void ShowFollowing() { FollowsData follows = new FollowsData(MapPath(".")); UsersData users = new UsersData(MapPath(".")); string fontID = (string)Request.QueryString["id"]; if (follows.IsFollow((string)Session["userID"], "font", fontID)) { Button_Follow.Enabled = false; Button_Unfollow.Enabled = true; } else { Button_Follow.Enabled = true; Button_Unfollow.Enabled = false; } var followers = follows.FindObjectIDs("font", fontID); foreach (var follower in followers) { Label_Followers.Text += "<div class=\"follows\">" + string.Format("<a href=\"user.aspx?id={0}\">{1}</a>", follower["userID"], users.FindUserID(follower["userID"])["userName"]) + "</div>"; } }
protected void ShowFollows() { FollowsData follows = new FollowsData(MapPath(".")); UsersData users = new UsersData(MapPath(".")); string targetUserID = (string)Request.QueryString["id"]; var hisFollowings = follows.FindUserIDs(targetUserID); foreach (var hisFollowing in hisFollowings) { string followingUserID = hisFollowing["objectID"]; Label_Followings.Text += "<div class=\"follows\">" + string.Format("<a href=\"user.aspx?id={0}\">{1}</a>", followingUserID, users.FindUserID(followingUserID)["userName"]) + "</div>"; } var hisFollowers = follows.FindObjectIDs("user", targetUserID); foreach (var hisFollower in hisFollowers) { string followerUserID = hisFollower["userID"]; Label_Followers.Text += "<div class=\"follows\">" + string.Format("<a href=\"user.aspx?id={0}\">{1}</a>", followerUserID, users.FindUserID(followerUserID)["userName"]) + "</div>"; } }
protected void ShowFollowingStatus() { FollowsData follows = new FollowsData(MapPath(".")); if ((string)Session["userID"] == (string)Request.QueryString["id"]) { Button_Follow.Visible = false; Button_Unfollow.Visible = false; return; } if (follows.IsFollow((string)Session["userID"], "user", (string)Request.QueryString["id"])) { Button_Follow.Enabled = false; Button_Unfollow.Enabled = true; } else { Button_Follow.Enabled = true; Button_Unfollow.Enabled = false; } }
protected void ShowActivities() { ActivitiesData activities = new ActivitiesData(MapPath(".")); FollowsData follows = new FollowsData(MapPath(".")); UsersData users = new UsersData(MapPath(".")); FontsData fonts = new FontsData(MapPath(".")); ImagesData images = new ImagesData(MapPath(".")); var myFollowings = follows.FindUserIDs((string)Session["userID"]); List<Dictionary<string, string>> shownActivities = new List<Dictionary<string, string>>(); foreach (var following in myFollowings) { Dictionary<string, string>[] thisActivities; switch (following["targetType"]) { case "font": thisActivities = activities.FindObjectIDs("font", following["objectID"]); break; case "user": thisActivities = activities.FindUserIDs(following["objectID"]); break; default: thisActivities = new Dictionary<string, string>[0]; break; } foreach (var thisActivity in thisActivities) { shownActivities.Add(thisActivity); } } Literal_Activities.Text = ""; foreach (Dictionary<string, string> activity in shownActivities.ToArray().Reverse()) { string targetUri; string targetName; string actionName; switch (activity["activityType"]) { case "makeImage": targetName = "文字 " + images.FindImageId(activity["objectID"])["imageName"]; targetUri = "char.aspx?id=" + activity["objectID"]; actionName = "作成"; break; case "editImage": targetName = "文字 " + images.FindImageId(activity["objectID"])["imageName"]; targetUri = "char.aspx?id=" + activity["objectID"]; actionName = "編集"; break; case "makeFont": targetName = "字体 " + fonts.FindFontID(activity["objectID"])["fontName"]; targetUri = "font.aspx?id=" + activity["objectID"]; actionName = "作成"; break; case "editFont": targetName = "字体 " + fonts.FindFontID(activity["objectID"])["fontName"]; targetUri = "font.aspx?id=" + activity["objectID"]; actionName = "編集"; break; case "makeSentence": targetName = "例文"; targetUri = "sentence.aspx?id=" + activity["objectID"]; actionName = "作成"; break; case "followFont": targetName = "字体 " + fonts.FindFontID(activity["objectID"])["fontName"]; targetUri = "font.aspx?id=" + activity["objectID"]; actionName = "認知"; break; case "followUser": targetName = "賢者 " + users.FindUserID(activity["objectID"])["userName"]; targetUri = "user.aspx?id=" + activity["objectID"]; actionName = "認知"; break; default: targetName = "UMA"; targetUri = "index.aspx"; actionName = "UFO"; break; } string userID = activity["userID"]; string userName = users.FindUserID(userID)["userName"]; if (activity["activityType"] == "makeSentence") { var sentence = new SentencesData(MapPath(".")).FindSentenceID(activity["objectID"]); Literal_Activities.Text += "<a href=\"" + targetUri + "\">" + PageKits.generateFontedContent(sentence["sentence"], sentence["fontID"]) + "</a>"; } Literal_Activities.Text += "<div class=\"activity\">" + "<a href=\"user.aspx?id=" + userID + "\">" + userName + "さん</a>が" + "<a href=\"" + targetUri + "\">" + targetName + "</a>を" + actionName + "しました。" + "<span class=\"activityDate\">" + activity["activityDate"] + "</span>" + "</div>"; } }