private static void ProcessRetailOrder()
        {
            UPCNumber             upcNumber    = new UPCNumber();
            SerialNumberGenerator serialNumber = SerialNumberGenerator.Instance;
            List <AbstractGadget> myGadgets    = new List <AbstractGadget>();

            for (int i = 0; i < _rsmallGadgetOrder; i++)
            {
                _serialNumber = serialNumber.NextSerial;
                myGadgets.Add(new GadgetSmall(WidgetColor.Painted, GadgetColor.Painted, GadgetPower.Battery, _serialNumber, upcNumber.UPCSmall));
            }

            for (int i = 0; i < _rmediumGadgetOrder; i++)
            {
                _serialNumber = serialNumber.NextSerial;
                myGadgets.Add(new GadgetMedium(WidgetColor.Painted, GadgetColor.Painted, GadgetPower.Battery, _serialNumber, upcNumber.UPCMedium));
            }

            for (int i = 0; i < _rlargeGadgetOrder; i++)
            {
                _serialNumber = serialNumber.NextSerial;
                myGadgets.Add(new GadgetLarge(WidgetColor.Painted, GadgetColor.Painted, GadgetPower.Generator, _serialNumber, upcNumber.UPCLarge));
            }

            RetailOutput retailReceipt = new RetailOutput(myGadgets);
        }
        private static void ProcessWholeSaleOrder()
        {
            UPCNumber             upcNumber    = new UPCNumber();
            SerialNumberGenerator serialNumber = SerialNumberGenerator.Instance;

            _serialNumber = serialNumber.NextSerial;
            AbstractGadget myMediumGadgetCP = new GadgetMedium(WidgetColor.Painted, GadgetColor.Painted, GadgetPower.Solar, _serialNumber, upcNumber.UPCMedium);

            myMediumGadgetCP = new CustomButton(myMediumGadgetCP, 5, GadgetType.Custom);
            myMediumGadgetCP = new CustomSwitches(myMediumGadgetCP, 4, GadgetType.Custom);


            _serialNumber = serialNumber.NextSerial;
            AbstractGadget myMediumGadgetCPL = new GadgetMedium(WidgetColor.Plated, GadgetColor.Plated, GadgetPower.Battery, _serialNumber, upcNumber.UPCMedium);

            myMediumGadgetCPL = new CustomButton(myMediumGadgetCPL, 7, GadgetType.Custom);
            myMediumGadgetCPL = new CustomSwitches(myMediumGadgetCPL, 5, GadgetType.Custom);

            _serialNumber = serialNumber.NextSerial;
            AbstractGadget myMediumGadgetCUP = new GadgetMedium(_serialNumber, upcNumber.UPCMedium);

            myMediumGadgetCUP = new CustomButton(myMediumGadgetCUP, 4, GadgetType.Custom);
            myMediumGadgetCUP = new CustomSwitches(myMediumGadgetCUP, 7, GadgetType.Custom);


            _serialNumber = serialNumber.NextSerial;
            AbstractGadget myLargeGadgetCP = new GadgetLarge(WidgetColor.Painted, GadgetColor.Painted, GadgetPower.Generator, _serialNumber, upcNumber.UPCLarge);

            myLargeGadgetCP = new CustomButton(myLargeGadgetCP, 5, GadgetType.Custom);
            myLargeGadgetCP = new CustomSwitches(myLargeGadgetCP, 4, GadgetType.Custom);
            myLargeGadgetCP = new CustomLights(myLargeGadgetCP, 8, GadgetType.Custom);


            _serialNumber = serialNumber.NextSerial;
            AbstractGadget myLargeGadgetCPL = new GadgetLarge(WidgetColor.Plated, GadgetColor.Plated, GadgetPower.Solar, _serialNumber, upcNumber.UPCLarge);

            myLargeGadgetCPL = new CustomButton(myLargeGadgetCPL, 7, GadgetType.Custom);
            myLargeGadgetCPL = new CustomSwitches(myLargeGadgetCPL, 5, GadgetType.Custom);
            myLargeGadgetCPL = new CustomLights(myLargeGadgetCPL, 3, GadgetType.Custom);


            _serialNumber = serialNumber.NextSerial;
            AbstractGadget myLargeGadgetCUP = new GadgetLarge(_serialNumber, upcNumber.UPCLarge);

            myLargeGadgetCUP = new CustomButton(myLargeGadgetCUP, 6, GadgetType.Custom);
            myLargeGadgetCUP = new CustomSwitches(myLargeGadgetCUP, 3, GadgetType.Custom);
            myLargeGadgetCUP = new CustomLights(myLargeGadgetCUP, 5, GadgetType.Custom);


            ArrayList Order1 = new ArrayList();

            Order1.Add(myMediumGadgetCP);
            Order1.Add(myMediumGadgetCPL);
            Order1.Add(myMediumGadgetCUP);
            Order1.Add(myLargeGadgetCP);
            Order1.Add(myLargeGadgetCPL);
            Order1.Add(myLargeGadgetCUP);


            CustomOutput customReceipt = new CustomOutput(Order1);
        }