示例#1
0
        void AddResult(SearchResult result)
        {
            bool sortResult = true;

            if (++resultCount > 1000)
            {
                sortResult     = false;
                tooManyResults = true;
                result         = new SearchResult {
                    NameObject = "Search aborted, more than 1000 results found."
                };
                cts.Cancel();
            }
            dispatcher.BeginInvoke(
                DispatcherPriority.Normal,
                new Action(() => {
                if (sortResult)
                {
                    ListSorter.Insert(this.Results, 0, this.Results.Count - 1, result);
                }
                else
                {
                    this.Results.Insert(this.Results.Count - 1, result);
                }
            })
                );
            cts.Token.ThrowIfCancellationRequested();
        }
示例#2
0
        public void RemoveDoubleMovies()
        {
            var fistMovie = new Movie
            {
                id    = "1",
                title = "first",
                rated = 10f
            };
            var secondMovie = new Movie
            {
                id    = "2",
                title = "second",
                rated = 0f
            };
            var thirdMovie = new Movie
            {
                id    = "3",
                title = "third",
                rated = 0f
            };
            var firstList = new List <Movie>
            {
                fistMovie,
                secondMovie,
                thirdMovie
            };
            var secondList = new List <Movie>
            {
                fistMovie
            };

            var actual = ListSorter.CombineMovieListsWithioutDoubles(firstList, secondList);

            Assert.AreEqual(3, actual.Count);
        }
示例#3
0
        public ActionResult GetMovieById(string id)
        {
            var top100List        = GetTop100MovieList();
            var detailedMovieList = GetDetailedMovies();
            var combinedList      = ListSorter.CombineMovieListsWithioutDoubles(detailedMovieList, top100List);

            return(Ok(combinedList.FirstOrDefault(movie => movie.id == id)));
        }
        public void GivenArrayOfItems_WhenSelectionSortIsInvoked_ThenSortedArrayIsReturned()
        {
            // Arrange
            var items = GetItems();

            // Act
            var result = ListSorter.SelectionSort(items);

            // Assert
            Assert.Equal("B,E,A,D,C", string.Join(",", result.Select(x => x.Name)));
        }
    public void Test_SortNameList_ReturnsCorrectResult()
    {
        List <Name> unsortedList = new List <Name> {
            new Name("zebra zippy zoo"), new Name("pinky pie pooh"), new Name("Christie Cheesy Choi")
        };
        List <Name> sortedList = new List <Name> {
            new Name("Christie Cheesy Choi"), new Name("pinky pie pooh"), new Name("zebra zippy zoo")
        };

        List <Name> methodSortedList = ListSorter.NameSort(unsortedList);

        Assert.Equal(methodSortedList, sortedList);
    }
示例#6
0
        private void buildListView()
        {
            lv_Websites.Clear();
            lv_Websites.Columns.Add("Name", 120);
            lv_Websites.Columns.Add("Is 2fa supported?", 330);
            ListSorter lsListSorter = new ListSorter(0, SortOrder.Ascending, true, false);

            lv_Websites.ListViewItemSorter = lsListSorter;
            if (m_host != null)
            {
                lv_Websites.SmallImageList = m_host.MainWindow.ClientIcons;
            }
        }
示例#7
0
        public ActionResult GetDetailedList(bool orderByAscending = true)
        {
            var top100List      = GetTop100MovieList();
            var parsedMovieList = GetDetailedMovies();
            var listToOrder     = ListSorter.CombineMovieListsWithioutDoubles(parsedMovieList, top100List);
            var orderedList     = ListSorter.orderList(orderByAscending, listToOrder);
            var listOfTitles    = new List <string>();

            foreach (var movie in orderedList)
            {
                listOfTitles.Add(movie.title);
            }
            return(Ok(listOfTitles));
        }
示例#8
0
        static void Main(string[] args)
        {
            Console.WriteLine("Welcome to this .NET Core Console App");

            int[] array = new[] { 1, 4, 3, 2 };

            List <int> set = new List <int>(array);

            set = ListSorter.Sort(set).ToList();

            set.ForEach(item => Console.WriteLine(item));

            Console.WriteLine("Finished the .NET Core Console App");
            Console.ReadLine();
        }
        public void Check_If_List_Only_Contains_Normal()
        {
            bool allCorrectType = true;

            sortedcontainers = ListSorter.GetNormalContainers(containers);
            foreach (var container in sortedcontainers)
            {
                if (container.Variant != ContainerVariant.Normal)
                {
                    allCorrectType = false;
                }
            }

            Assert.AreEqual(8, sortedcontainers.Count);
            Assert.AreEqual(true, allCorrectType);
        }
        public void Check_If_List_Only_Contains_Valuable_And_Coolable()
        {
            bool allCorrectType = true;

            sortedcontainers = ListSorter.GetCoolableAndValuableContainers(containers);
            foreach (var container in sortedcontainers)
            {
                if (container.Variant != ContainerVariant.CoolableAndValuable)
                {
                    allCorrectType = false;
                }
            }

            Assert.AreEqual(4, sortedcontainers.Count);
            Assert.AreEqual(true, allCorrectType);
        }
        private void buildListView()
        {
            lvExpiringPasswords.Columns.Add(Properties.strings.pcr_form_lv_name, 120);
            lvExpiringPasswords.Columns.Add(Properties.strings.pcr_form_lv_nextchangein, 90, HorizontalAlignment.Right);
            lvExpiringPasswords.Columns.Add(Properties.strings.pcr_form_lv_age, 90, HorizontalAlignment.Right);
            lvExpiringPasswords.Columns.Add(Properties.strings.pcr_form_lv_remindevery, 90, HorizontalAlignment.Right);

            ListSorter lsListSorter = new ListSorter(1, SortOrder.Ascending, true, false);

            lvExpiringPasswords.ListViewItemSorter = lsListSorter;

            ListViewGroup lvgListViewGroup = new ListViewGroup(Properties.strings.pcr_today);

            lvExpiringPasswords.Groups.Add(lvgListViewGroup);
            lvgListViewGroup = new ListViewGroup(Properties.strings.pcr_soon);
            lvExpiringPasswords.Groups.Add(lvgListViewGroup);
        }
示例#12
0
        private void lv_Websites_ColumnClick(object sender, ColumnClickEventArgs e)
        {
            // arrows for showing sort
            const string ascArrow  = "▲ ";
            const string descArrow = "▼ ";

            CustomListViewEx lv     = (CustomListViewEx)sender;
            ListSorter       sorter = (ListSorter)lv.ListViewItemSorter;
            ColumnHeader     head   = lv.Columns[sorter.Column];

            // remove arrow
            if (head.Text.StartsWith(ascArrow) || head.Text.StartsWith(descArrow))
            {
                head.Text = head.Text.Substring(2, head.Text.Length - 2);
            }

            head = lv.Columns[e.Column];
            if (sorter.Column == e.Column)
            {
                if (sorter.Order == SortOrder.Ascending)
                {
                    sorter.Order = SortOrder.Descending;
                    head.Text    = descArrow + head.Text;
                }
                else
                {
                    sorter.Order = SortOrder.Ascending;
                    head.Text    = ascArrow + head.Text;
                }
            }
            else
            {
                sorter.Order  = SortOrder.Ascending;
                sorter.Column = e.Column;
                head.Text     = ascArrow + head.Text;
            }
            lv.ListViewItemSorter = sorter;
            lv.Sort();
        }
示例#13
0
        public void OrderListByDescending()
        {
            var fistMovie = new Movie
            {
                id    = "1",
                title = "first",
                rated = 10f
            };
            var secondMovie = new Movie
            {
                id    = "2",
                title = "second",
                rated = 0f
            };
            var listToSort = new List <Movie>
            {
                fistMovie,
                secondMovie
            };

            var actual = ListSorter.orderList(false, listToSort);

            Assert.AreEqual(fistMovie, actual[0]);
        }
示例#14
0
        private void changeSelectedIcon()
        {
            presetResult.Clear(); presetResultSorter.Clear();
            foreach (IconLayout icon in ContentManager.PresetIcons)
            {
                var nameList = icon.iconNames;
                int match    = 0;

                foreach (var name in nameList)
                {
                    var itemName = item.Name == null ? new string[0] : item.Name.Split(' ');
                    foreach (string n in itemName)
                    {
                        // check if name is same or contains name with all lower case, all uper case, and first letter uppercase
                        if (name.Contains(n) || name.Contains(n.ToLower()) || name.Contains(n.ToUpper()) || name.Contains(char.ToUpper(n[0]) + n.Substring(1)))
                        {
                            match--;
                        }
                    }
                }

                icon.OnClickIconAction += (button) =>
                {
                    toggleIconSelect(button, presetSelectGrid);
                    item.Icon = icon.GetImageSource();
                };
                presetResultSorter.Add(match);
                presetResult.Add(icon);
                match = 0;
            }

            toggleIconSelect(null, presetSelectGrid);
            ListSorter.SortToListAscending(presetResultSorter, presetResult);
            GridManager.AddGridItem(presetSelectGrid, presetResult, true, GridOrganizer.OrganizeMode.VerticalLeft);
            Console.WriteLine("AddView 177 preset children " + presetSelectGrid.Children.Count + " preset column count " + presetSelectGrid.ColumnDefinitions.Count);
        }
示例#15
0
        private async void doSearchAsync()
        {
            int c = 0;

            startAnimation("Searching");
            bSearching         = true;
            btn_Search.Enabled = false;
            btn_Reload.Enabled = false;

            lv_Websites.BeginUpdate();
            ListSorter ls = (ListSorter)lv_Websites.ListViewItemSorter;

            lv_Websites.ListViewItemSorter = null;
            lv_Websites.Items.Clear();
            if (listKP2faC_Website.Count > 0)
            {
                string sSearchQuery = tb_SearchQuery.Text;
                await Task.Run(() =>
                {
                    foreach (KP2faC_Website website in listKP2faC_Website)
                    {
                        if (string.IsNullOrWhiteSpace(sSearchQuery) || compareText(website.name, sSearchQuery) || compareText(website.url, sSearchQuery))
                        {
                            addWebsiteToListView(website);
                            c++;
                        }
                        else if (website.alternatives != null)
                        {
                            foreach (string domain in website.alternatives)
                            {
                                if (compareText(domain, sSearchQuery))
                                {
                                    addWebsiteToListView(website);
                                    c++;
                                    break;
                                }
                            }
                        }
                    }
                });
            }
            else if (bRetrievingJson)
            {
                ListViewItem lvi = lv_Websites.Items.Add("Loading websites...");
                lvi.ImageIndex  = (int)PwIcon.NetworkServer;
                lvi.ToolTipText = "The plugin is currently downloading the json file from the server or reading it from your pc!";
                lvi.Font        = new Font(lvi.Font, FontStyle.Italic);
            }
            else
            {
                ListViewItem lvi = lv_Websites.Items.Add("API Error!");
                lvi.ImageIndex  = (int)PwIcon.Warning;
                lvi.ToolTipText = "There happend an error! Try to connect your pc to the internet and press Reload!";
            }

            btn_Reload.Enabled             = true;
            btn_Search.Enabled             = true;
            bSearching                     = false;
            lv_Websites.ListViewItemSorter = ls;
            lv_Websites.Sort();
            lv_Websites.EndUpdate();
            stopAnimation();
            setStateText("Found " + c + " entrie(s)!");
        }
示例#16
0
 public void CleanUp()
 {
     _listSorter = null;
 }
        private static void UpdateColumnSortingIcons(this ListView lv, ListSorter ls)
        {
            if (lv == null)
            {
                return;
            }
            if (UIUtil.SetSortIcon(lv, ls.Column, ls.Order))
            {
                return;
            }

            // if(m_lvEntries.SmallImageList == null) return;

            if (ls.Column < 0)
            {
                return;
            }

            string strAsc = "  \u2191";             // Must have same length
            string strDsc = "  \u2193";             // Must have same length

            if (KeePass.Util.WinUtil.IsWindows9x || KeePass.Util.WinUtil.IsWindows2000 || KeePass.Util.WinUtil.IsWindowsXP ||
                KeePassLib.Native.NativeLib.IsUnix())
            {
                strAsc = @"  ^";
                strDsc = @"  v";
            }
            else if (KeePass.Util.WinUtil.IsAtLeastWindowsVista)
            {
                strAsc = "  \u25B3";
                strDsc = "  \u25BD";
            }

            foreach (ColumnHeader ch in lv.Columns)
            {
                string strCur = ch.Text, strNew = null;

                if (strCur.EndsWith(strAsc) || strCur.EndsWith(strDsc))
                {
                    strNew = strCur.Substring(0, strCur.Length - strAsc.Length);
                    strCur = strNew;
                }

                if ((ch.Index == ls.Column) &&
                    (ls.Order != SortOrder.None))
                {
                    if (ls.Order == SortOrder.Ascending)
                    {
                        strNew = strCur + strAsc;
                    }
                    else if (ls.Order == SortOrder.Descending)
                    {
                        strNew = strCur + strDsc;
                    }
                }

                if (strNew != null)
                {
                    ch.Text = strNew;
                }
            }
        }
示例#18
0
 private void button1_Click(object sender, EventArgs e)
 {
     label1.Text = Convert.ToString(ListSorter.InList1OrInList2(ListSorter.StrToList(textBox1.Text), ListSorter.StrToList(textBox2.Text)));
 }
示例#19
0
 public void Sort <T>(Func <Wz_Node, T> getKeyFunc) where T : IComparable <T>
 {
     ListSorter.Sort(base.Items as List <Wz_Node>, getKeyFunc);
 }
示例#20
0
 public void Init()
 {
     _listSorter = new ListSorter();
 }
示例#21
0
        void IService16001Callback.SendSysMessage(S1600MessageType msgType, List <string> lstSysMsg)
        {
            string strMsg  = string.Empty;
            long   lUserID = 0;

            switch (msgType)
            {
            case S1600MessageType.ConnServerFailed:

                break;

            case S1600MessageType.FriendOffline:
                //好友上线 更新名字颜色和图标
                long.TryParse(lstSysMsg[0], out lUserID);
                List <ContacterInListBox> lstFriend = lstContacters.Where(p => p.UserID == lUserID).ToList();
                if (lstFriend.Count > 0)
                {
                    lstFriend.First().Status      = "1";
                    lstFriend.First().ForegGround = Brushes.Gray;
                    string strType         = lstFriend.First().UserID.ToString().Substring(0, 3);
                    lstFriend.First().Icon = strType == ConstValue.RESOURCE_AGENT.ToString() ?
                                             "Themes/Default/UMP1600/Images/AgentOffline.png" : "Themes/Default/UMP1600/Images/UserOffline.png";
                }
                ListSorter.SortList <ObservableCollection <ContacterInListBox>, ContacterInListBox>(ref lstContacters, "Status", SortDirection.Descending);
                break;

            case S1600MessageType.FriendOnline:
                //好友上线 更新名字颜色和图标
                long.TryParse(lstSysMsg[0], out lUserID);
                lstFriend = lstContacters.Where(p => p.UserID == lUserID).ToList();
                if (lstFriend.Count > 0)
                {
                    lstFriend.First().Status      = "1";
                    lstFriend.First().ForegGround = Brushes.Red;
                    string strType         = lstFriend.First().UserID.ToString().Substring(0, 3);
                    lstFriend.First().Icon = strType == ConstValue.RESOURCE_AGENT.ToString() ?
                                             "Themes/Default/UMP1600/Images/AgentOnline.png" : "Themes/Default/UMP1600/Images/UserOnline.png";
                    //lstFriend.First().Icon = "Themes/Default/UMP1600/Images/OnLine.ico";
                }
                ListSorter.SortList <ObservableCollection <ContacterInListBox>, ContacterInListBox>(ref lstContacters, "Status", SortDirection.Descending);
                break;

            case S1600MessageType.GetFriendFailed:
                MessageBox.Show(InitApp.GetLanguage("1600007", "Failed to get a buddy list"));
                break;

            case S1600MessageType.Logined:
                //MessageBox.Show(InitApp.GetLanguage("1600001", "Your account has been logged in at another place, you have been forced offline"));

                //lblCurrStatus.Content = session.UserInfo.UserName +"("+ InitApp.GetLanguage("1600009", "Offline")+")";
                //lblCurrStatus.Foreground = Brushes.LightGray;

                StatusChangeEvent((int)UserStatusChangeType.LogOff, "");
                SetIMStatus(false);
                if (iClient.State == CommunicationState.Opened)
                {
                    try
                    {
                        iClient.Close();
                    }
                    catch
                    {
                    }
                }

                break;

            case S1600MessageType.LoginFailed:
                MessageBox.Show(lstSysMsg[0]);
                break;

            case S1600MessageType.LoginSuceess:
                //lblCurrStatus.Content = session.UserInfo.UserName +"("+ InitApp.GetLanguage("1600009", "Offline")+")";
                //lblCurrStatus.Foreground = Brushes.LightGreen;
                StatusChangeEvent((int)UserStatusChangeType.Login, "");

                #region 发送心跳的计时器
                HeartTimer           = new Timer();
                HeartTimer.AutoReset = true;
                HeartTimer.Interval  = 180 * 1000;           //时间间隔30秒
                HeartTimer.Elapsed  += HeartTimer_Elapsed;
                HeartTimer.Start();
                #endregion
                if (StatusChangeEvent != null)
                {
                    StatusChangeEvent((int)UserStatusChangeType.Login, "");
                }
                break;

            case S1600MessageType.HeartMsg:
                //MessageBox.Show("心跳消息"+DateTime.Now);
                break;

            case S1600MessageType.TestMsg:
                //MessageBox.Show(lstSysMsg[0]);
                break;

            case S1600MessageType.SendMsgError:
                strMsg = InitApp.GetLanguage("1600002", "Your message '{0}' failed to send the other party may have been offline, has been sent as an offline message");
                strMsg = string.Format(strMsg, lstSysMsg[0]);
                //找到对应的窗口 显示此消息
                string strFriendName = lstSysMsg[1];
                if (dicChatWins.Keys.Contains(strFriendName))
                {
                    ChartWindow win = dicChatWins[strFriendName].Content as ChartWindow;
                    win.txtRecord.Text += strMsg;
                }
                else
                {
                    //还没想好该咋处理 先空着
                }
                break;

            case S1600MessageType.EndCookie:
                //结束会话
                string strContacterName = lstSysMsg[0];
                long   lContacterID     = long.Parse(lstSysMsg[1]);
                if (dicCookies.Keys.Contains(lContacterID))
                {
                    if (dicCookies[lContacterID].CookieTimer != null)
                    {
                        dicCookies[lContacterID].CookieTimer.Stop();
                        dicCookies[lContacterID].CookieTimer = null;
                        //MessageBox.Show("cookie closed");
                    }
                }
                break;

            case S1600MessageType.CookieID:
                lContacterID = long.Parse(lstSysMsg[0]);
                long cookieID = long.Parse(lstSysMsg[1]);
                if (dicCookies.Keys.Contains(lContacterID))
                {
                    dicCookies[lContacterID].CookieID      = cookieID;
                    dicCookies[lContacterID].CookieCreated = 1;
                    dicCookies[lContacterID].CookieTimer.Start();
                }
                break;
            }
        }
示例#22
0
        /// <summary>
        /// 初始化好友列表
        /// </summary>
        /// <param name="lstFriends"></param>
        void IService16001Callback.InitFriendList(List <string> lstFriends)
        {
            lstContacters.Clear();
            if (lstFriends.Count <= 0)
            {
                //MessageBox.Show("您没有可以管理的用户和坐席");
                return;
            }
            lbContacter.ItemsSource = lstContacters;
            OperationReturn    optReturn = null;
            Contacter          con       = null;
            ContacterInListBox conInList = null;

            for (int i = 0; i < lstFriends.Count; i++)
            {
                optReturn = XMLHelper.DeserializeObject <Contacter>(lstFriends[i]);
                if (optReturn.Result)
                {
                    con       = optReturn.Data as Contacter;
                    conInList = new ContacterInListBox();
                    List <ContacterInListBox> lstExists = lstContacters.Where(p => p.UserID == con.UserID).ToList();
                    if (lstExists.Count > 0)
                    {
                        continue;
                    }
                    conInList.UserID      = con.UserID;
                    conInList.UserName    = S16001EncryptOperation.DecryptWithM004(con.UserName);
                    conInList.FullName    = S16001EncryptOperation.DecryptWithM004(con.UserName) + " (" + S16001EncryptOperation.DecryptWithM004(con.FullName) + ")";
                    conInList.OrgID       = con.OrgID;
                    conInList.OrgName     = S16001EncryptOperation.DecryptWithM004(con.OrgName);
                    conInList.ParentOrgID = con.ParentOrgID;
                    conInList.Status      = con.Status;
                    conInList.IMGOpacity  = "1";
                    string strType = conInList.UserID.ToString().Substring(0, 3);
                    if (strType == ConstValue.RESOURCE_AGENT.ToString())
                    {
                        if (conInList.Status == "1")
                        {
                            conInList.Icon = "Themes/Default/UMP1600/Images/AgentOnline.png";
                        }
                        else
                        {
                            conInList.Icon = "Themes/Default/UMP1600/Images/AgentOffline.png";
                        }
                    }
                    else
                    {
                        if (conInList.Status == "1")
                        {
                            conInList.Icon = "Themes/Default/UMP1600/Images/UserOnline.png";
                        }
                        else
                        {
                            conInList.Icon = "Themes/Default/UMP1600/Images/UserOffline.png";
                        }
                    }
                    if (conInList.Status == "1")
                    {
                        conInList.ForegGround = Brushes.Red;
                    }
                    else
                    {
                        conInList.ForegGround = Brushes.Gray;
                    }

                    lstContacters.Add(conInList);
                }
            }
            ListSorter.SortList <ObservableCollection <ContacterInListBox>, ContacterInListBox>(ref lstContacters, "Status", SortDirection.Descending);
        }