Exemplo n.º 1
0
    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);
    }
Exemplo n.º 2
0
    private static string deleteRecord()
    {
        string output = "deleteRecord\n";

        for (int i = 0; i < count; i++)
        {
            User2Tag u2t = new User2Tag(sampleUser.UserId, ids[i]);
            if (!User2TagManager.deleteRecord(u2t))
            {
                output += "Error! 删除关联(TagId为" + ids[i] + ",用户id为" + sampleUser.UserId + ")失败!\n";
                errorCount++;
            }
            else
            {
                output += "Ok! 删除关联(TagId为" + ids[i] + ",用户id为" + sampleUser.UserId + ")成功!\n";
            }
            Tag t = new Tag(ids[i], "", "", 1, DateTime.Now, 1);
            if (!TagManager.deleteTag(t))
            {
                output += "Error! 删除测试Tag失败(TagId为" + ids[i] + ")!\n";
                errorCount++;
            }
            else
            {
                output += "Ok! 删除测试Tag成功(TagId为" + ids[i] + ")!\n";
            }
        }

        return(output);
    }
Exemplo n.º 3
0
    private static void deleteTag()
    {
        output += "deleteTag\n";

        List <int> list = User2TagManager.getTagListByUserId(sampleUser);

        foreach (int id in list)
        {
            User2Tag u2t2 = new User2Tag(sampleUser.UserId, id);
            if (!FocusAndCreateTag.deleteTag(u2t2))
            {
                output += "Error! 删除User2Tag记录失败!\n";
                errorCount++;
            }
            else
            {
                output += "Ok! 删除User2Tag记录成功!\n";
            }
        }
        List <int> list2 = User2TagManager.getTagListByUserId(sampleUser);

        int list2_len = 0;

        if (list2 != null)
        {
            list2_len = list2.Count;
        }

        if (list2_len == list.Count)
        {
            output += "Error! 调用deleteTag前后getTagListByUserId返回的列表长度相同!未能真正删除User2Tag记录!\n";
        }
    }
Exemplo n.º 4
0
    //根据传入参数删除对应的记录
    //成功返回true,失败返回false
    public static bool deleteRecord(User2Tag u2t)
    {
        string     sqlStr = "DELETE FROM user2tag WHERE userId=@uId AND tagId=@tId";
        SqlCommand cmd    = new SqlCommand(sqlStr);

        cmd.Parameters.AddWithValue("@uId", u2t.UserId);
        cmd.Parameters.AddWithValue("@tId", u2t.TagId);
        return(DBHelper.ExecSQL(cmd));
    }
Exemplo n.º 5
0
    //根据传入参数增加一条新的记录
    //成功返回true,失败返回false
    public static bool addRecord(User2Tag u2t)
    {
        string     sqlStr = "INSERT INTO user2tag(userId, tagId) VALUES(@uId, @tId)";
        SqlCommand cmd    = new SqlCommand(sqlStr);

        cmd.Parameters.AddWithValue("@uId", u2t.UserId);
        cmd.Parameters.AddWithValue("@tId", u2t.TagId);
        return(DBHelper.ExecSQL(cmd));
    }
Exemplo n.º 6
0
    private static bool clean()
    {
        for (int i = 0; i < count; i++)
        {
            // unlink user to sub groups
            User2Tag u2t = new User2Tag(sampleUser.UserId, tags[i].TagId);
            if (!User2TagManager.deleteRecord(u2t))
            {
                output += "Error! 删除User2Tag记录失败!测试无法继续进行。请先解决User2TagManager中的错误。\n";
                errorCount++;
                return(false);
            }

            // unlink user to interest labels
            User2Tag u2t2 = new User2Tag(sampleUser.UserId, interLabels[i].TagId);
            if (!User2TagManager.deleteRecord(u2t2))
            {
                output += "Error! 删除User2Tag记录失败!测试无法继续进行。请先解决User2TagManager中的错误。\n";
                errorCount++;
                return(false);
            }

            // delete public sub groups
            if (!TagManager.deleteTag(tags[i]))
            {
                output += "Error! 删除测试公共子分类失败!测试无法继续进行。请先解决TagManager中的错误。\n";
                errorCount++;
                return(false);
            }

            // delete interest labels
            if (!TagManager.deleteTag(interLabels[i]))
            {
                output += "Error! 删除测试兴趣标签失败!测试无法继续进行。请先解决TagManager中的错误。\n";
                errorCount++;
                return(false);
            }

            // delete primary groups
            if (!PrimaryGroupMananger.deleteRecord(pgs[i]))
            {
                output += "Error! 删除测试主分类失败!测试无法继续进行。请先解决PrimaryGroupManager中的错误。\n";
                errorCount++;
                return(false);
            }
        }

        if (!UserManager.deleteRecord(sampleUser))
        {
            output += "Error! 删除用户\"test\"失败!测试无法继续进行。请先解决UserManager中的错误。\n";
            errorCount++;
            return(false);
        }

        return(true);
    }
Exemplo n.º 7
0
    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);
    }
Exemplo n.º 8
0
    /**
     * 输入:新建兴趣标签所属的主分类,兴趣标签的名称,关键词列表(多个关键词之间用空格分隔),用户的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));
    }
Exemplo n.º 9
0
    /**
     * 输入:一个User2Tag的model
     * 输出:成功返回true,失败返回false
     * 功能:删除指定的User2Tag记录
     */
    public static bool deleteTag(User2Tag u2t)
    {
        if (!User2TagManager.deleteRecord(u2t))
        {
            return(false);
        }
        // 如果是兴趣标签,则除了删除User2Tag表中记录,还要删除Tag表中这个兴趣标签本身
        Tag t = new Tag();

        t.TagId = u2t.TagId;
        Tag t2 = TagManager.getTag(t);

        if (t2.IsPrivate == 1)
        {
            return(TagManager.deleteTag(t2));
        }
        else
        {
            return(true);
        }
    }
Exemplo n.º 10
0
    /**
     * 输入:用户关注的所有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);
    }