private static string addRecord() { string output = "addRecord\n"; Random r = new Random(); for (int i = 0; i < count; i++) { Tag t = new Tag("", "", 1, DateTime.Now, 1); ids[i] = TagManager.addTag(t); if (ids[i] < 0) { output += "Error! 新增测试Tag失败!返回值为" + ids[i] + "\n"; errorCount++; continue; } output += "Ok! 新增测试Tag成功!返回值为" + ids[i] + "\n"; User2Tag u2t = new User2Tag(sampleUser.UserId, ids[i]); if (!User2TagManager.addRecord(u2t)) { output += "Error! 将id为" + ids[i] + "的Tag关联到id为" + sampleUser.UserId + "的用户时失败!\n"; errorCount++; } else { output += "Ok! 将id为" + ids[i] + "的Tag关联到id为" + sampleUser.UserId + "的用户时成功!\n"; } } return(output); }
private static bool prepare() { Random r = new Random(); // add global user sampleUser = new User("test", "test", "test"); sampleUser.UserId = UserManager.addUser(sampleUser); if (sampleUser.UserId < 0) { output += "Error! 新增用户\"test\"失败!返回值为" + sampleUser.UserId + "。测试无法继续进行。请先解决UserManager中的错误。\n"; errorCount++; return(false); } for (int i = 0; i < count; i++) { int no = r.Next(1000, 9000); // add primary groups pgs[i] = new PrimaryGroups(100, no + ""); pgs[i].GroupId = PrimaryGroupMananger.addRecord(pgs[i]); if (pgs[i].GroupId < 0) { output += "Error! 新增主分类失败!返回值为" + pgs[i].GroupId + "。测试无法继续进行。请先解决PrimaryGroupManager中的错误。\n"; errorCount++; return(false); } // add public sub groups tags[i] = new Tag("sub" + no, "sub" + no, pgs[i].GroupId, DateTime.Now, 0); tags[i].TagId = TagManager.addTag(tags[i]); if (tags[i].TagId < 0) { output += "Error! 新增公共子分类失败!返回值为" + tags[i].TagId + "。测试无法继续进行。请先解决TagManager中的错误。\n"; errorCount++; return(false); } // link user to sub groups User2Tag u2t = new User2Tag(sampleUser.UserId, tags[i].TagId); if (!User2TagManager.addRecord(u2t)) { output += "Error! 新增User2Tag记录失败!测试无法继续进行。请先解决User2TagManager中的错误。\n"; errorCount++; return(false); } } return(true); }
/** * 输入:新建兴趣标签所属的主分类,兴趣标签的名称,关键词列表(多个关键词之间用空格分隔),用户的userId * 输出:成功返回true,失败返回false * 功能:在指定的主分类下新建用户私有的兴趣标签 * 注意:要对primaryGroupId的取值范围做检查 */ public static bool addTag(int primaryGroupId, string tagName, string tagKeys, int userId) { // 建立Tag Tag t = new Tag(-1, tagName, tagKeys, primaryGroupId, DateTime.Now, 1); int tagId = TagManager.addTag(t); if (tagId < 0) { return(false); } // 建立用户到tag的链接 User2Tag u2t = new User2Tag(userId, tagId); return(User2TagManager.addRecord(u2t)); }
/** * 输入:用户关注的所有tag(这里只有子分类,不会出现兴趣标签)的tagId列表(包括所有的“其他”子分类),用户的id * 输出:成功返回true,失败返回false * 功能:记录用户关注的子分类信息到数据库 * 注意:进行数据库操作时,要先删除该用户的所有非兴趣标签类型的关注,再重新添加用户关注的子分类。 * 对兴趣标签的增删都有专门的方法进行操作,这不是本方法的涉足范围,本方法不可以增删用户自己的兴趣标签, * 只能对用户关于公共分类(主分类和子分类)的关注链接进行操作!!! * * 还有任何不理解的地方请果断问清楚。 */ public static bool saveFocus(List <int> tagIds, int userId) { //拿到指定用户旧的关注列表(包括子分类和兴趣标签) User u = new User(); u.UserId = userId; User u2 = UserManager.getUserById(u); List <int> oldTagList = User2TagManager.getTagListByUserId(u2); //根据列表信息,删除用户对子分类的全部关注,只留下对兴趣标签的关注 if (oldTagList != null) { foreach (int tempTagId in oldTagList) { Tag t = new Tag(); t.TagId = tempTagId; Tag t2 = TagManager.getTag(t); if (t2.IsPrivate == 0) { // 删除用户关注 User2Tag u2t = new User2Tag(userId, tempTagId); User2TagManager.deleteRecord(u2t); } } } //将用户的新的对子分类的关注列表存入User2Tag表中 foreach (int tempNewTagId in tagIds) { User2Tag u2t = new User2Tag(userId, tempNewTagId); if (!User2TagManager.addRecord(u2t)) { continue; } } return(true); }