public OrderedEnumerator(IAsyncEnumerator <TSource> enumerator, SequenceSorter <TSource> sorter, CancellationToken ct)
 {
     Contract.Requires(enumerator != null && sorter != null);
     m_inner  = enumerator;
     m_sorter = sorter;
     m_ct     = ct;
 }
            public SequenceByElementSorter(IComparer <TSource> comparer, bool descending, SequenceSorter <TSource> next)
            {
                Contract.Requires(comparer != null);

                m_comparer   = comparer;
                m_descending = descending;
                m_next       = next;
            }
            public SequenceByKeySorter(Func <TSource, TKey> keySelector, IComparer <TKey> comparer, bool descending, SequenceSorter <TSource> next)
            {
                Contract.Requires(keySelector != null && comparer != null);

                m_keySelector = keySelector;
                m_comparer    = comparer;
                m_descending  = descending;
                m_next        = next;
            }
            internal virtual SequenceSorter <TSource> GetEnumerableSorter(SequenceSorter <TSource> next)
            {
                var sorter = new SequenceByElementSorter <TSource>(m_comparer, m_descending, next);

                if (m_parent == null)
                {
                    return(sorter);
                }
                return(m_parent.GetEnumerableSorter(sorter));
            }
            internal virtual SequenceSorter <TSource> GetEnumerableSorter(SequenceSorter <TSource>?next)
            {
                var sorter = new SequenceByElementSorter <TSource>(m_comparer ?? Comparer <TSource> .Default, m_descending, next);

                return(m_parent == null ? sorter : m_parent.GetEnumerableSorter(sorter));
            }
Exemplo n.º 6
0
        public void SortBySequence(string item)
        {
            ObservableCollection <ItemSequence>   itemlist   = new ObservableCollection <ItemSequence>();
            ObservableCollection <SequenceSorter> updateList = new ObservableCollection <SequenceSorter>();

            List <string> scaleSEQ = new List <string>();

            scaleSEQ.Add("EA");
            scaleSEQ.Add("IP");
            scaleSEQ.Add("DP");
            scaleSEQ.Add("TO");
            scaleSEQ.Add("CS");
            scaleSEQ.Add("PL");

            try
            {
                DynamicParameters param = new DynamicParameters();
                param.Add("@ITEM", item);

                using (IDbConnection Conn = new SqlConnection(stringConn))
                {
                    var itemCol = Conn.Query <ItemSequence>("CUBISCAN_QUANTITY_UM_BY_ITEM", param, null, true, null, CommandType.StoredProcedure);
                    // GET ALL SEQUENCES BY ITEM
                    foreach (ItemSequence its in itemCol)
                    {
                        ItemSequence i = new ItemSequence();
                        i.ITEM        = its.ITEM;
                        i.QUANTITY_UM = its.QUANTITY_UM;
                        i.SEQUENCE    = its.SEQUENCE;
                        itemlist.Add(i);
                    }

                    // SORT ALL SEQUENCES BY SCALE
                    foreach (string seq in scaleSEQ)
                    {
                        SequenceSorter ss = new SequenceSorter();
                        ss.QUANTITY_UM = seq.ToString();
                        ss.IsPresent   = false;

                        foreach (ItemSequence itm in itemlist)
                        {
                            if (itm.QUANTITY_UM == seq.ToString())
                            {
                                ss.IsPresent = true;
                            }
                        }
                        updateList.Add(ss);
                    }

                    //UPDATE ALL SEQUENCES ON SCALE
                    int xCounter = 1;
                    foreach (SequenceSorter x in updateList)
                    {
                        if (x.IsPresent == true)
                        {
                            DynamicParameters paramUpdate = new DynamicParameters();
                            paramUpdate.Add("@ITEM", item);
                            paramUpdate.Add("@CONTAINER", x.QUANTITY_UM);
                            paramUpdate.Add("@SEQUENCE", xCounter);

                            var _id = Conn.Query <int>("CUBISCAN_SORT_BY_QUANTITY_UM", paramUpdate, null, true, null, CommandType.StoredProcedure);
                            xCounter = xCounter + 1;
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                ErrorLogParams exparams = new ErrorLogParams();
                exparams.ITEM        = item;
                exparams.DESCRIPTION = ex.Message.ToString();
                exparams.FILE_NAME   = "N/A";
                Update_ErrLog(exparams);
            }
        }
Exemplo n.º 7
0
 public OrderedEnumerator(IFdbAsyncEnumerator <TSource> enumerator, SequenceSorter <TSource> sorter)
 {
     Contract.Requires(enumerator != null && sorter != null);
     m_inner  = enumerator;
     m_sorter = sorter;
 }