// UI interface
        public void SetProcessEquipment(string processEquipment)
        {
            switch (processEquipment)
            {
            case "Mash Copper":
                MashCopper mashCopper = brewingProcessHandler.MashCopper;
                if (mashCopper.Brew.ProcessEquipmentParameters.ContainsKey(ProcessEquipment.MashCopper))
                {
                    processEquipmentParameters = mashCopper.Brew.ProcessEquipmentParameters[ProcessEquipment.MashCopper];
                }
                break;

            case "Mash Tun":
                MashTun mashTun = brewingProcessHandler.MashTun;
                if (mashTun.Brew.ProcessEquipmentParameters.ContainsKey(ProcessEquipment.MashTun))
                {
                    processEquipmentParameters = mashTun.Brew.ProcessEquipmentParameters[ProcessEquipment.MashTun];
                }
                break;

            case "Mash Filter":
                MashFilter mashFilter = brewingProcessHandler.MashFilter;
                if (mashFilter.Brew.ProcessEquipmentParameters.ContainsKey(ProcessEquipment.MashFilter))
                {
                    processEquipmentParameters = mashFilter.Brew.ProcessEquipmentParameters[ProcessEquipment.MashFilter];
                }
                break;

            case "Holding Vessel":
                HoldingVessel holdingVessel = brewingProcessHandler.HoldingVessel;
                processEquipmentParameters = holdingVessel.Brew.ProcessEquipmentParameters[ProcessEquipment.HoldingVessel];
                if (holdingVessel.Brew.ProcessEquipmentParameters.ContainsKey(ProcessEquipment.HoldingVessel))
                {
                    processEquipmentParameters = holdingVessel.Brew.ProcessEquipmentParameters[ProcessEquipment.HoldingVessel];
                }
                break;

            case "Wort Copper":
                WortCopper wortCopper = brewingProcessHandler.WortCopper;
                if (wortCopper.Brew.ProcessEquipmentParameters.ContainsKey(ProcessEquipment.WortCopper))
                {
                    processEquipmentParameters = wortCopper.Brew.ProcessEquipmentParameters[ProcessEquipment.WortCopper];
                }
                break;

            case "Whirlpool":
                Whirlpool whirlpool = brewingProcessHandler.Whirlpool;
                if (whirlpool.Brew.ProcessEquipmentParameters.ContainsKey(ProcessEquipment.Whirlpool))
                {
                    processEquipmentParameters = whirlpool.Brew.ProcessEquipmentParameters[ProcessEquipment.Whirlpool];
                }
                break;
            }
            selectedProcessEquipment = processEquipment;
            Notify();
        }
        public void ChangeProcessEquipmentParameterValue(string processEquipment, string parameterName, string parameterValue)
        {
            switch (processEquipment)
            {
            case "Mash Copper":
                MashCopper mashCopper = brewingProcessHandler.MashCopper;
                switch (parameterName)
                {
                case "ProteinRestTemperature":
                    SetMashCopperProteinRestTemperature(parameterValue);
                    break;

                case "HeatingUp1Temperature":
                    break;

                case "HeatingUp2Temperature":
                    break;
                }
                //mashCopper.Brew.SetProcessParameterValue(ProcessEquipment.MashCopper, parameterName, parameterValue);
                break;

            case "Mash Tun":
                MashTun mashTun = brewingProcessHandler.MashTun;
                mashTun.Brew.SetProcessParameterValue(ProcessEquipment.MashTun, parameterName, parameterValue);
                break;

            case "Mash Filter":
                MashFilter mashFilter = brewingProcessHandler.MashFilter;
                mashFilter.Brew.SetProcessParameterValue(ProcessEquipment.MashFilter, parameterName, parameterValue);
                break;

            case "Holding Vessel":
                HoldingVessel holdingVessel = brewingProcessHandler.HoldingVessel;
                holdingVessel.Brew.SetProcessParameterValue(ProcessEquipment.HoldingVessel, parameterName, parameterValue);
                break;

            case "Wort Copper":
                WortCopper wortCopper = brewingProcessHandler.WortCopper;
                wortCopper.Brew.SetProcessParameterValue(ProcessEquipment.WortCopper, parameterName, parameterValue);
                break;

            case "Whirlpool":
                Whirlpool whirlpool = brewingProcessHandler.Whirlpool;
                whirlpool.Brew.SetProcessParameterValue(ProcessEquipment.Whirlpool, parameterName, parameterValue);
                break;
            }
            Notify();
        }
 //Other methods
 private void InitializeAllProcessEquipment()
 {
     mashCopper    = new MashCopper();
     mashTun       = new MashTun();
     mashFilter    = new MashFilter();
     holdingVessel = new HoldingVessel();
     wortCopper    = new WortCopper();
     whirlpool     = new Whirlpool();
     mashCopper.SetState(new MashCopperIdleState());
     mashTun.SetState(new MashTunIdleState());
     mashFilter.SetState(new MashFilterIdleState());
     holdingVessel.SetState(new HoldingVesselIdleState());
     wortCopper.SetState(new WortCopperIdleState());
     whirlpool.SetState(new WhirlpoolIdleState());
     Notify();
 }
        // UI Process Equipment methods
        public void SelectProcessEquipmentParameter(string processEquipment, string parameterName)
        {
            switch (processEquipment)
            {
            case "Mash Copper":
                MashCopper mashCopper = brewingProcessHandler.MashCopper;
                selectedProcessEquipmentParameterValue =
                    mashCopper.Brew.GetProcessParameterValue(ProcessEquipment.MashCopper, parameterName);
                break;

            case "Mash Tun":
                MashTun mashTun = brewingProcessHandler.MashTun;
                selectedProcessEquipmentParameterValue =
                    mashTun.Brew.GetProcessParameterValue(ProcessEquipment.MashTun, parameterName);
                break;

            case "Mash Filter":
                MashFilter mashFilter = brewingProcessHandler.MashFilter;
                selectedProcessEquipmentParameterValue =
                    mashFilter.Brew.GetProcessParameterValue(ProcessEquipment.MashFilter, parameterName);
                break;

            case "Holding Vessel":
                HoldingVessel holdingVessel = brewingProcessHandler.HoldingVessel;
                selectedProcessEquipmentParameterValue =
                    holdingVessel.Brew.GetProcessParameterValue(ProcessEquipment.HoldingVessel, parameterName);
                break;

            case "Wort Copper":
                WortCopper wortCopper = brewingProcessHandler.WortCopper;
                selectedProcessEquipmentParameterValue =
                    wortCopper.Brew.GetProcessParameterValue(ProcessEquipment.WortCopper, parameterName);
                break;

            case "Whirlpool":
                Whirlpool whirlpool = brewingProcessHandler.Whirlpool;
                selectedProcessEquipmentParameterValue =
                    whirlpool.Brew.GetProcessParameterValue(ProcessEquipment.Whirlpool, parameterName);
                break;
            }
            selectedProcessEquipmentParameterName = parameterName;
            Notify();
        }
        public void SetProcessStepEndTimeTestCase()
        {
            Brew       brew       = new Brew("01/01/2016", "Maltina", "258");
            MashCopper mashCopper = new MashCopper(brew);

            brew.SetProcessParameterValue(ProcessEquipment.MashCopper,
                                          MashCopperProcessParameters.HeatingUp1EndTime.ToString(),
                                          "10:00");

            string checkValue = brew.GetProcessParameterValue(ProcessEquipment.MashCopper,
                                                              MashCopperProcessParameters.HeatingUp1EndTime.ToString());


            MashCopperRest1State mashCopperRest1State = new MashCopperRest1State();
            //mashCopperRest1State.SetEndTime("12:00", mashCopper, brew);



            string paraValue = brew.GetProcessParameterValue(ProcessEquipment.MashCopper,
                                                             MashCopperProcessParameters.Rest1EndTime.ToString());

            Assert.AreEqual("12:00", paraValue);
        }