Exemplo n.º 1
0
        /// <summary>
        /// Returns box counts
        /// </summary>
        /// <param name="states"></param>
        /// <returns></returns>
        public int?this[BoxState states]
        {
            get
            {
                var results = new List <int?>(INDEX_STATE_MAX);
                if (states.HasFlag(BoxState.Cancelled))
                {
                    results.Add(_counts[INDEX_STATE_CANCELLED]);
                }
                if (states.HasFlag(BoxState.InProgress))
                {
                    results.Add(_counts[INDEX_STATE_UNVERIFIED]);
                }
                if (states.HasFlag(BoxState.Completed))
                {
                    results.Add(_counts[INDEX_STATE_VERIFIED]);
                }
                if (states.HasFlag(BoxState.NotStarted))
                {
                    results.Add(_counts[INDEX_STATE_NOTSTARTED]);
                }
                return(results.Sum());
            }
            set
            {
                switch (states)
                {
                case BoxState.Completed:
                    _counts[INDEX_STATE_VERIFIED] = value;
                    break;

                case BoxState.Cancelled:
                    _counts[INDEX_STATE_CANCELLED] = value;
                    break;

                case BoxState.InProgress:
                    _counts[INDEX_STATE_UNVERIFIED] = value;
                    break;

                case BoxState.NotStarted:
                    _counts[INDEX_STATE_NOTSTARTED] = value;
                    break;

                default:
                    throw new NotSupportedException(states.ToString());
                }
            }
        }
Exemplo n.º 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();
                }
            }
        }