Esempio n. 1
0
        internal void Process(List <Shade> shades)
        {
            RawShades     = shades;
            IsResultReady = false;
            PaperParser.Process(shades);
            ShadeItemKeys.Clear();
            if (PaperParser.MainReady)
            {
                foreach (ItemParser itemParser in ItemParsers)
                {
                    itemParser.Process(PaperParser);
                    ShadeItemKeys.AddRange(itemParser.ItemKeys);
                }
                SetParser.Process(PaperParser);
                PaperItem[] keys = new PaperItem[Assessment.GetTypeLength(Assessment.AssessmentType)];
                for (int i = 0; i < keys.Length; i++)
                {
                    keys[i] = new PaperItem(false, false, false, false, false);
                }
                foreach (ShadeItemKey shadeItemKey in ShadeItemKeys)
                {
                    switch (shadeItemKey.Key)
                    {
                    case Key.A:
                        keys[shadeItemKey.ItemNumber - 1].A = true;
                        break;

                    case Key.B:
                        keys[shadeItemKey.ItemNumber - 1].B = true;
                        break;

                    case Key.C:
                        keys[shadeItemKey.ItemNumber - 1].C = true;
                        break;

                    case Key.D:
                        keys[shadeItemKey.ItemNumber - 1].D = true;
                        break;

                    case Key.E:
                        keys[shadeItemKey.ItemNumber - 1].E = true;
                        break;
                    }
                }
                AnswerParser  = AnswerParser.Parse(Assessment, keys, SetParser.SetParserResult);
                IsResultReady = true;
            }
        }