public DresserFacade(
     Func <string, IEnumerable <CommandType> > commandListParser,
     Func <string, TemperatureType> temperatureTypeParser,
     IDresser commandProcessor
     )
 {
     _commandListParser     = commandListParser;
     _temperatureTypeParser = temperatureTypeParser;
     _dresser = commandProcessor;
 }
        /// <summary>
        /// Processes the user input commands
        /// </summary>
        /// <returns>Dressing order</returns>
        public string DressWell()
        {
            //Get the model from the Data layer
            UserInputModel uim = ((DressWellRepository)dbContext).Uim;

            //Instantiate dresser based on the first command (weather type) passed by the user
            switch (uim.Input[0].ToUpper())
            {
            case "HOT":
                dresser = new DressWellForHot();
                break;

            case "COLD":
                dresser = new DressWellForCold();
                break;

            //Invalid First Command
            default:
                throw new Exception("Invalid weather specified in the first arguement");
            }

            return(ProcessCommands(uim));
        }