Beispiel #1
0
            //public void LoadData() {
            //    RefreshDB();
            //}

            /**
             * ソートする
             */
            public void Sort(SortInfo next, bool force = false)
            {
                if (next == null)
                {
                    return;
                }
                var prev = DxxGlobal.Instance.SortInfo;

                if (!force && prev == next)
                {
                    return;
                }
                DxxGlobal.Instance.SortInfo = next;
                if (!force && prev.Key == next.Key)
                {
                    if (prev.Order != next.Order)
                    {
                        List.Value = new ObservableCollection <DxxDBStorage.DBRecord>(List.Value.Reverse());
                    }
                }
                else
                {
                    var cmp = new RecordComparer(next);
                    List.Value = new ObservableCollection <DxxDBStorage.DBRecord>(List.Value.OrderBy((v) => v, cmp));
                }
                Owner.UpdateColumnHeaderOnSort(next);

                // maintainance of PlayList
                UpdatePlayList();
            }
Beispiel #2
0
    public void ReBelance()
    {
        DateTime now = DateTime.Now;

        if (m_pendingWords.Count > 0)
        {
            Record record = m_pendingWords[0];
            if (record.m_nextTime > now)
            {
                m_pendingWords.RemoveAt(0);
                m_usedWords.Add(record);
            }
        }
        RecordComparer comparer = new RecordComparer();

        m_freshWords.Sort(comparer);
        m_freshWords.Reverse();
        if (m_freshWords.Count > 0)
        {
            Record record = m_freshWords[0];
            if (record.Count() > 0)
            {
                m_freshWords.RemoveAt(0);
                if (record.m_nextTime > now)
                {
                    m_usedWords.Add(record);
                }
                else
                {
                    m_pendingWords.Add(record);
                }
            }
        }
        m_usedWords.Sort(comparer);
        while (m_usedWords.Count > 0)
        {
            Record record = m_usedWords[0];
            if (record.m_nextTime < now)
            {
                m_pendingWords.Add(record);
                m_usedWords.RemoveAt(0);
            }
            else
            {
                break;
            }
        }
        m_pendingWords.Sort(comparer);
    }
Beispiel #3
0
        public GetGridRecordsResponse GetGridRecords(bool ignorePages)
        {
            if (DynamicGridViewModel.HasPaging && !ignorePages)
            {
                var conditions = new[]
                { new Condition(LinkedRecordLookup, ConditionType.Equal, RecordForm.RecordId) };
                return(DynamicGridViewModel.GetGridRecordPage(conditions, null));
            }
            else
            {
                var lastSortExpression = DynamicGridViewModel.GetLastSortExpression();
                var records            = GetRecordService().GetLinkedRecords(LinkedRecordType, RecordForm.RecordType,
                                                                             LinkedRecordLookup, RecordForm.RecordId).ToList();
                if (lastSortExpression != null)
                {
                    RecordComparer.SortList(records, lastSortExpression);
                }

                return(new GetGridRecordsResponse(records));
            }
        }
Beispiel #4
0
 /// <summary>
 /// Inits this instance.
 /// </summary>
 private void Init()
 {
     this.records  = new List <Record>();
     this.comparer = new RecordComparer();
 }