Exemple #1
0
 public int?this[PiecesKind kind, BoxState state]
 {
     get
     {
         return(_dictPieces.Where(p => p.Key.Item1 == state && p.Key.Item2 == kind).Sum(p => p.Value));
     }
     set
     {
         _dictPieces[Tuple.Create(state, kind)] = value;
     }
 }
Exemple #2
0
        /// <summary>
        /// Returns sum of pieces in boxes
        /// </summary>
        /// <param name="states"></param>
        /// <param name="kind"></param>
        /// <returns></returns>
        public int?this[BoxState states, PiecesKind kind]
        {
            get
            {
                var results = new List <int?>(2);
                if (states.HasFlag(BoxState.Cancelled))
                {
                    results.Add(_pieces[INDEX_STATE_CANCELLED, (int)kind]);
                }
                if (states.HasFlag(BoxState.InProgress))
                {
                    results.Add(_pieces[INDEX_STATE_UNVERIFIED, (int)kind]);
                }
                if (states.HasFlag(BoxState.Completed))
                {
                    results.Add(_pieces[INDEX_STATE_VERIFIED, (int)kind]);
                }
                return(results.Sum());
            }
            set
            {
                switch (states)
                {
                case BoxState.Completed:
                    _pieces[INDEX_STATE_VERIFIED, (int)kind] = value;
                    break;

                case BoxState.Cancelled:
                    _pieces[INDEX_STATE_CANCELLED, (int)kind] = value;
                    break;

                case BoxState.InProgress:
                    _pieces[INDEX_STATE_UNVERIFIED, (int)kind] = value;
                    break;

                default:
                    throw new NotSupportedException();
                }
            }
        }
Exemple #3
0
 public int?GetPieces(PiecesKind kind, BoxState[] states)
 {
     return(_dictPieces.Where(p => states.Contains(p.Key.Item1) && p.Key.Item2 == kind).Sum(p => p.Value));
 }