コード例 #1
0
    protected void egvSW_RowDeleting(object sender, GridViewDeleteEventArgs e)
    {
        int id = (int)egvSW.DataKeys[e.RowIndex].Value;

        WordSearchManager.DeleteWords(id);
        BindWords();
    }
コード例 #2
0
    protected void egvSW_RowUpdating(object sender, GridViewUpdateEventArgs e)
    {
        GridViewRow gvr   = egvSW.Rows[e.RowIndex];
        int         k     = (int)egvSW.DataKeys[e.RowIndex].Value;
        string      count = (gvr.FindControl("txtCount") as TextBox).Text.Trim();
        decimal     c     = 0;

        decimal.TryParse(count, out c);
        WordSearchManager.UpdateWordHitCount(k, c);
        egvSW.EditIndex = -1;
        BindWords();
    }
コード例 #3
0
        public void WordSearchManager_LoadDirectory_Test()
        {
            // Arrange
            var loadDirsMock    = new Mock <ILoadDirectories>();
            var searchWordsMock = new Mock <ISearchWords>();

            var testee = new WordSearchManager(loadDirsMock.Object, searchWordsMock.Object);

            // Act
            testee.LoadDirectory("testDir");

            // Assert
            loadDirsMock.Verify(v => v.GetFiles("testDir"), Times.Once);
        }
コード例 #4
0
        public void WordSearchManager_SearchMatches_MultipleFiles_Test()
        {
            // Arrange
            var loadDirsMock    = new Mock <DirectoryLoader>(TestUtils.FileSystemBuilder(10));
            var searchWordsMock = new Mock <ISearchWords>();

            var testee = new WordSearchManager(loadDirsMock.Object, searchWordsMock.Object);

            testee.LoadDirectory("testDir");

            // Act
            testee.SearchMatches("pattern");

            // Assert
            searchWordsMock.Verify(v => v.SearchWordsInFile(It.IsAny <string>(), "pattern"), Times.Exactly(10));
        }
コード例 #5
0
        public void WordSearchManager_SearchMatches_NoFiles_Test()
        {
            // Arrange
            var loadDirsMock    = new Mock <DirectoryLoader>(TestUtils.FileSystemBuilder(0));
            var searchWordsMock = new Mock <ISearchWords>();

            var testee = new WordSearchManager(loadDirsMock.Object, searchWordsMock.Object);

            testee.LoadDirectory("testDir");

            // Act
            testee.SearchMatches("pattern");

            // Assert
            searchWordsMock.Verify(v => v.SearchWordsInFile("file", "pattern"), Times.Never);
        }
コード例 #6
0
    protected void btnSave_Click(object sender, EventArgs e)
    {
        WordStatistic ws = new WordStatistic();
        decimal       i  = 0;

        decimal.TryParse(txtCount.Text, out i);
        ws.HitCount   = i;
        ws.SearchWord = txtSearchWord.Text.Trim();
        if (WordSearchManager.SaveStatistic(ws))
        {
            base.ExecuteJs("msg('成功添加一条新的搜索关键词记录!',true)", false);
        }
        else
        {
            base.ExecuteJs("msg('增加搜索关键词记录时失败!')", false);
        }
    }
コード例 #7
0
    void BindHotSearch()
    {
        List <String> searchWords = WordSearchManager.GetHotWords();

        if (searchWords.Count == 0)
        {
            ltHotSearch.Text = "--";
        }
        else
        {
            searchWords = searchWords.GetRange(0, Math.Min(5, searchWords.Count));
            string        src = "<a href=\"" + GlobalSettings.RelativeWebRoot + "pages/view.aspx?product-search&w={2}\" title=\"{0}\">{1}</a>";
            StringBuilder sb  = new StringBuilder();
            foreach (string s in searchWords)
            {
                sb.AppendFormat(src, s, GlobalSettings.SubString(s, 10), HttpUtility.UrlEncode(s));
            }
            ltHotSearch.Text = sb.ToString();
        }
    }
コード例 #8
0
        public void WordSearchManager_Test()
        {
            // Arrange
            int expectedFiles          = 20;
            int expectedMatchesPerFile = 5;

            var filesystem = TestUtils.FileSystemBuilder(expectedFiles, "pattern", expectedMatchesPerFile);

            var loadDirs    = new DirectoryLoader(filesystem);
            var searchWords = new WordSearcher(filesystem);

            var testee = new WordSearchManager(loadDirs, searchWords);

            // Act
            var numberOfFiles = testee.LoadDirectory("testDir");
            var topTen        = testee.SearchMatches("pattern");

            // Assert
            Assert.AreEqual(expectedFiles, numberOfFiles);
            Assert.AreEqual(10, topTen.Count);
            topTen.ToList().ForEach((kvp) => Assert.AreEqual(expectedMatchesPerFile, kvp.Value));
        }
コード例 #9
0
 protected void Button37_Click(object sender, EventArgs e)
 {
     lblCacheTip.Text = WordSearchManager.GetWordSuggest("t", 5).Count.ToString();
     //List<ArticleCategory> categories = ArticleManager.GetAllCategories();
 }
コード例 #10
0
        public void ProcessRequest(HttpContext context)
        {
            string msg = string.Empty;
            bool   suc = false;

            try
            {
                string curUser = string.Empty;
                if (context.Profile.IsAnonymous)
                {
                    curUser = context.Profile.UserName;
                }
                else
                {
                    curUser = Users.GetUniqueId(context.Profile.UserName).ToString();
                }
                NameValueCollection req = context.Request.QueryString;
                string action           = req["action"];
                switch (action)
                {
                case "getFriendLinks":
                    try
                    {
                        suc = true;
                        msg = Newtonsoft.Json.JavaScriptConvert.SerializeObject(FriendLinks.FriendLinkGet());
                    }
                    catch (Exception ex)
                    {
                        suc = false;
                        msg = ex.Message;
                    }
                    break;

                case "addShopcart":
                    int      pid    = int.Parse(req["d"]);
                    int      amount = int.Parse(req["c"]);
                    int      mid    = int.Parse(req["m"]);
                    Shopping shop   = new Shopping()
                    {
                        CreateTime   = DateTime.Now,
                        UpdateTime   = DateTime.Now,
                        ModelID      = mid,
                        ProductID    = pid,
                        Quantity     = amount,
                        ShoppingMemo = string.Empty,
                        UserID       = curUser
                    };
                    suc = Shoppings.ShoppingAdd(shop);
                    break;

                case "getPSuggestion":
                    string        v  = req["value"];
                    List <string> sw = WordSearchManager.GetWordSuggest(v, 10);
                    suc = true;
                    msg = Newtonsoft.Json.JavaScriptConvert.SerializeObject(sw);
                    break;

                case "getStatistic":
                    List <WordStatistic> wss = WordSearchManager.GetStatistic(GlobalSettings.MinValue, GlobalSettings.MaxValue);
                    wss = wss.GetRange(0, Math.Min(10, wss.Count));
                    suc = true;
                    msg = Newtonsoft.Json.JavaScriptConvert.SerializeObject(wss);
                    break;

                case "batchDelete":
                    int i1 = Products.BatchOperation(req["ids"], 2, int.Parse(curUser));
                    if (i1 < 0)
                    {
                        msg = "操作失败,系统数据错误,请联系管理员!";
                    }
                    else
                    {
                        msg = "操作成功!";
                    }
                    suc = true;
                    break;

                case "batchPublish":
                    int i2 = Products.BatchOperation(req["ids"], 1, int.Parse(curUser));
                    if (i2 < 0)
                    {
                        msg = "操作失败,系统数据错误,请联系管理员!";
                    }
                    else
                    {
                        msg = "操作成功!";
                    }
                    suc = true;
                    break;

                case "batchCopy":
                    int i3 = Products.BatchOperation(req["ids"], 3, int.Parse(curUser));
                    if (i3 < 0)
                    {
                        msg = "操作失败,系统数据错误,请联系管理员!";
                    }
                    else
                    {
                        msg = "操作成功!";
                    }
                    suc = true;
                    break;

                case "batchTruncate":
                    int i4 = Products.BatchOperation(req["ids"], 4, int.Parse(curUser));
                    if (i4 < 0)
                    {
                        msg = "操作失败,系统数据错误,请联系管理员!";
                    }
                    else
                    {
                        msg = "操作成功!";
                    }
                    suc = true;
                    break;
                }

                context.Response.Write("{msg:'" + msg + "',suc:" + suc.ToString().ToLower() + "}");
            }
            catch (Exception ex)
            {
                context.Response.Write("{msg:'" + ex.Message + "',suc:false}");
            }
        }
コード例 #11
0
 public void Execute(XmlNode node)
 {
     WordSearchManager.Statistic();
 }
コード例 #12
0
 void BindWords()
 {
     egvSW.DataSource = WordSearchManager.GetStatistic(GlobalSettings.MinValue, GlobalSettings.MaxValue);
     egvSW.DataBind();
 }
コード例 #13
0
 void context_UserSearchWord(string searchWord)
 {
     WordSearchManager.Insert(searchWord);
 }