Exemple #1
0
        private void AskToEditState()
        {
            StateManager     stateManager = StateManagerFactory.Create(); //calls state repo
            AddOrderResponse response     = new AddOrderResponse();

            Console.Clear();
            ConsoleIO.DisplaySingleOrder(_originalOrder);

            while (true)
            {
                Console.Write("Enter new state or just press enter to continue: ");
                string state = Console.ReadLine();

                if (state == "" || state == null)
                {
                    _taxState = stateManager.GetStateInfo(_originalOrder.State);
                    break;
                }
                else
                {
                    response = stateManager.ValidateState(state.ToLower());
                    if (response.Success == false)
                    {
                        Console.WriteLine("The state entered is not valid. Press any key to continue.");
                        continue;
                    }
                    else
                    {
                        _taxState = stateManager.GetStateInfo(state.ToLower());
                        break;
                    }
                }
            }
        }
Exemple #2
0
        static void Main()
        {
            Type t = Type.GetType("Cn.Youdundianzi.Share.Util.Motor.MotorSignalSettings");

            CSettings settings = (CSettings)ModuleConfig.GetSettings(t, "Test.config");

            signLen             = new SignLength();
            signLen.GAN_LENGTH  = settings.SignConfig.GanLength;
            signLen.XIAN_LENGTH = settings.SignConfig.XianLength;
            signLen.CHE_LENGTH  = settings.SignConfig.CheLength;

            SimForm simForm = new Cn.Youdundianzi.Share.Util.Sim6G6X4C.SimForm();

            ISignalMonitor monitor = SignalMonitorFactory.CreateSignalMonitor("Motor.exe", "Cn.Youdundianzi.Share.Signal.Motor.MotorMonitor", settings);

            oldData = monitor.CreateMonDate(signLen);
            monitor.HotKeyHandle = simForm.Handle;
            monitor.RegMonitor(simForm);
            Program p = new Program();

            monitor.RegMonitor(p);

            ITranslator translator = TranslatorFactory.CreateTranslater("Motor.exe", "Cn.Youdundianzi.Exam.MotorSignalTranslator", monitor);
            //IStateManager sm = StateManagerFactory.CreateStateManager("Motor.exe", "Cn.Youdundianzi.Exam.State.MotorState.MotorStateManager", translator, settings);
            //IStateManager sm = StateManagerFactory.CreateStateManager("Motor.exe", "Cn.Youdundianzi.Exam.State.XA2WMotorState.MotorStateManager", translator, settings);
            IStateManager sm = StateManagerFactory.CreateStateManager("Motor.exe", "Cn.Youdundianzi.Exam.State.XA3WMotorState.MotorStateManager", translator, settings);

            sm.CurrentState = sm.EntryState;

            monitor.Start();
            Application.Run(simForm);
        }
Exemple #3
0
        public void StateFileListLookupTest()
        {
            StateManager manager = StateManagerFactory.Create();

            StateFileLookup response = manager.ListAllStates();

            Assert.IsNotNull(response.StateList);
            Assert.IsTrue(response.Success);
        }
Exemple #4
0
        public ActionResult Purchase(PurchaseListingVM model)
        {
            _purchaseManager = PurchaseManagerFactory.Create();
            _stateManager    = StateManagerFactory.Create();
            _listingManager  = ListingManagerFactory.Create();

            try
            {
                var listingResponse = _listingManager.GetListingById(model.ListingToPurchase.ListingId);

                model.ListingToPurchase = listingResponse.Payload;

                if (ModelState.IsValid)
                {
                    //set sold listing in db


                    //set user name
                    model.PurchaseForm.UserName = User.Identity.Name;

                    //set listing id
                    model.PurchaseForm.ListingId = model.ListingToPurchase.ListingId;

                    //set date
                    model.PurchaseForm.DateAdded = DateTime.Now;



                    //send to manager
                    var response = _purchaseManager.SavePurchase(model.PurchaseForm);

                    if (!response.Success)
                    {
                        return(new HttpStatusCodeResult(500, $"Error in cloud. Message:{response.Message}"));
                    }
                }
                else
                {
                    var stateResponse = _stateManager.GetAllStates();

                    model.States = stateResponse.Payload.Select(m => new SelectListItem
                    {
                        Text  = m.StateAbbreviation,
                        Value = m.StateId.ToString()
                    });


                    return(View(model));
                }

                return(RedirectToAction("Index"));
            }
            catch (Exception ex)
            {
                throw new ApplicationException("Something wrong happened while loading a purchase:", ex);
            }
        }
Exemple #5
0
        public void StateFileChoseTest()
        {
            StateManager manager = StateManagerFactory.Create();

            StateLookupResponse response = manager.LookupState("OH");

            Assert.IsNotNull(response.StateTax.State);
            Assert.IsTrue(response.Success);
            Assert.AreEqual("OH", response.StateTax.State);
        }
Exemple #6
0
        public ActionResult Purchase(int id)
        {
            try
            {
                _listingManager = ListingManagerFactory.Create();
                _stateManager   = StateManagerFactory.Create();

                var listingResponse = _listingManager.GetListingById(id);

                if (!listingResponse.Success)
                {
                    return(new HttpStatusCodeResult(500, $"Error in cloud. Message:{listingResponse.Message}"));
                }
                else
                {
                    var model = new PurchaseListingVM
                    {
                        ListingToPurchase = listingResponse.Payload,
                        PurchaseForm      = new Purchase()
                    };

                    var stateResponse = _stateManager.GetAllStates();

                    model.States = stateResponse.Payload.Select(m => new SelectListItem
                    {
                        Text  = m.StateAbbreviation,
                        Value = m.StateId.ToString()
                    });

                    return(View(model));
                }
            }
            catch (Exception ex)
            {
                throw new ApplicationException("Something wrong happened while loading a purchase:", ex);
            }
        }
Exemple #7
0
        private void button4_Click(object sender, EventArgs e)
        {
            //
            //读取设置文件,准备环境设置
            //
            //用哪个setting
            SettingPair sp1 = new SettingPair();

            //sp1.ImplementClass = new MotorSignalSettings().GetType();
            sp1.ImplementClass = new TractorSignalSettings().GetType();
            sp1.FilePath       = "TractorSignal.config";

            ISettings setting  = new CSetup(sp1).Settings;
            CSettings csetting = setting as CSettings;

            //
            //创建Monitor,Translator,StateManager。
            //准备考试核心引擎
            //
            //用哪个monitor
            //AssemblyInfoPair monInfo = AssemblyInfoFactory.GetAssemblyInfo(typeof(Cn.Youdundianzi.Share.Signal.Motor.MotorMonitor));
            //AssemblyInfoPair monInfo = AssemblyInfoFactory.GetAssemblyInfo(typeof(Cn.Youdundianzi.Share.Signal.Car.OldCarMonitor));
            AssemblyInfoPair monInfo = AssemblyInfoFactory.GetAssemblyInfo(typeof(Cn.Youdundianzi.Share.Signal.Car.TractorMonitor));
            ISignalMonitor   mon     = SignalMonitorFactory.CreateSignalMonitor(monInfo, setting);

            //用哪个translator
            //AssemblyInfoPair transInfo = AssemblyInfoFactory.GetAssemblyInfo(typeof(Cn.Youdundianzi.Exam.MotorSignalTranslator));
            AssemblyInfoPair transInfo  = AssemblyInfoFactory.GetAssemblyInfo(typeof(Cn.Youdundianzi.Exam.CarSignalTranslator));
            ITranslator      translator = TranslatorFactory.CreateTranslater(transInfo, mon);

            //用哪个statemanager
            //AssemblyInfoPair stateMgrInfo = AssemblyInfoFactory.GetAssemblyInfo(typeof(Cn.Youdundianzi.Exam.State.MotorState.MotorStateManager));
            //AssemblyInfoPair stateMgrInfo = AssemblyInfoFactory.GetAssemblyInfo(typeof(Cn.Youdundianzi.Exam.State.PureLineCarState.CarStateManager));
            AssemblyInfoPair stateMgrInfo = AssemblyInfoFactory.GetAssemblyInfo(typeof(Cn.Youdundianzi.Exam.State.Tractor.TractorStateManager));
            IStateManager    stateMgr     = StateManagerFactory.CreateStateManager(stateMgrInfo, translator, setting);

            //
            //创建考试启动停止控件
            //实现单会合考试
            ExamCtrlPanel examCtrl = new ExamCtrlPanel();

            examCtrl.Location = new System.Drawing.Point(0, 0);
            this.ctrlPanel.Controls.Add(examCtrl);

            //ExamCtrl控件必须先被add到其父窗口中,然后再进行Initialize
            examCtrl.InitializeExamComponent(setting, mon, translator, stateMgr);

            //创建考试状态显示面板
            //单会合考试级别扩展功能
            ExamStatusDisplayPanel statePane = new ExamStatusDisplayPanel();

            statePane.Location    = new System.Drawing.Point(0, 100);
            statePane.BorderStyle = BorderStyle.Fixed3D;
            statePane.InitializeExamComponent(stateMgr);
            this.ctrlPanel.Controls.Add(statePane);

            //创建信号显示面板
            SignalDisplay signaldisplay = new SignalDisplay(mon);

            signaldisplay.Location = new System.Drawing.Point(0, 20);
            //sd.BorderStyle = BorderStyle.Fixed3D;
            this.ctrlPanel.Controls.Add(signaldisplay);


            //用哪个DisplayPanel
            //BaseModelDisplayPanel modelDisplayPane = new Cn.Youdundianzi.Share.Module.ModelDisplay.Car.CarModelDisplayPanel();
            BaseModelDisplayPanel modelDisplayPane = new Cn.Youdundianzi.Share.Module.ModelDisplay.Car.TractorModelDisplayPanel();

            modelDisplayPane.Location = new System.Drawing.Point(200, 0);
            modelDisplayPane.InitializeExamComponent(csetting, mon, stateMgr);
            this.ctrlPanel.Controls.Add(modelDisplayPane);

            /**
             * //初始化车型列表
             * List<string> cxList = new List<string>(2);
             * cxList.Add("A");
             * cxList.Add("B");
             *
             * //初始化排队列表
             * CandidateQuery candQuery = new CandidateQuery();
             * candQuery.Location = new System.Drawing.Point(550, 20);
             * //sd.BorderStyle = BorderStyle.Fixed3D;
             * this.ctrlPanel.Controls.Add(candQuery);
             *
             * //用哪个Candidate Infomation Panel
             * CandExamCtrl candExamPane = new Cn.Youdundianzi.Share.Module.CandidateInfo.LocalInputPanel();
             * candExamPane.Location = new System.Drawing.Point(0, 150);
             * candExamPane.InitializeCandExamCtrlComponent(examCtrl, csetting, cxList);
             * this.ctrlPanel.Controls.Add(candExamPane);
             *
             * //初始化声音控件(基础声音控件类)
             * SoundCtrl soundCtrl = new SoundCtrl();
             * candExamPane.SoundChange += new MessageDelegate(soundCtrl.PlayText);    //注册candExamCtrl的声音变化事件回调函数
             *
             * //初始化显示牌控件
             * //------------------------------------------------------------------------------
             * string LEDAssemblyFilePath = Application.StartupPath + "\\LEDDisplay.dll";
             *
             * SettingPair spDisplay = new SettingPair();
             * spDisplay.ImplementClass = AssemblyInfoFactory.GetType(LEDAssemblyFilePath, csetting.DisplayPaneConfig.DisplayConfigClass);
             * spDisplay.FilePath = csetting.DisplayPaneConfig.DisplayConfigFilePath;
             *
             * ISettings dissettings = new CSetup(spDisplay).Settings;
             * DisplayConfig dispalySetting = dissettings as DisplayConfig;
             * IDisplaycomm displaycomm = DisplayFactory.CreateDisplay(LEDAssemblyFilePath, csetting.DisplayPaneConfig.DisplayCommClass, dispalySetting);
             * candExamPane.LEDDisplayChange += new MessageDelegate(displaycomm.ShowText); //注册candExamCtrl的显示牌变化事件回调函数
             *
             *
             * //初始化摄像头
             * Camera camera = new Camera(0);
             * camera.Location = new System.Drawing.Point(200, 400);
             * camera.Size = new Size(400, 300);
             * camera.BorderStyle = BorderStyle.Fixed3D;
             * this.ctrlPanel.Controls.Add(camera);
             * candExamPane.CameraChannelChange += new IntegerDelegate(camera.SetChannel); //注册candExamCtrl的摄像头变化事件回调函数
             *
             * //结果显示控件
             * ExamResultPanel resultPanel = new ExamResultPanel();
             * resultPanel.Location = new System.Drawing.Point(0, 400);
             * resultPanel.Size = new Size(210, 110);
             * resultPanel.BorderStyle = BorderStyle.FixedSingle;
             * candExamPane.ExamResultReady += new ExamResultDelegate(resultPanel.SetResultText);
             **/
        }
Exemple #8
0
        private void ExamFrm_Load(object sender, EventArgs e)
        {
            if (_pracConfig == null)
            {
                MessageBox.Show("ExamConfig属性未赋值。");
                this.Close();
                return;
            }

            if (IsExam)
            {
                this.Text = "考试窗口";
            }
            else
            {
                this.Text = "练习窗口";
            }

            //
            //读取设置文件,准备环境设置
            //
            //用哪个setting
            SettingPair sp = new SettingPair();

            sp.ImplementClass = AssemblyInfoFactory.GetType(PracticeConfig.Setting.ClsFilePath, PracticeConfig.Setting.ClsName);
            sp.FilePath       = PracticeConfig.Setting.ConfigFilePath;

            ISettings setting  = new CSetup(sp).Settings;
            CSettings csetting = setting as CSettings;

            //
            //创建Monitor,Translator,StateManager。
            //准备考试核心引擎
            //
            //用哪个monitor
            AssemblyInfoPair monInfo = AssemblyInfoFactory.GetAssemblyInfo(PracticeConfig.Monitor.ClsFilePath, PracticeConfig.Monitor.ClsName);

            mon = SignalMonitorFactory.CreateSignalMonitor(monInfo, setting);

            //用哪个translator
            AssemblyInfoPair transInfo = AssemblyInfoFactory.GetAssemblyInfo(PracticeConfig.Translator.ClsFilePath, PracticeConfig.Translator.ClsName);

            translator = TranslatorFactory.CreateTranslater(transInfo, mon);

            //用哪个statemanager
            AssemblyInfoPair stateMgrInfo = AssemblyInfoFactory.GetAssemblyInfo(PracticeConfig.StateManager.ClsFilePath, PracticeConfig.StateManager.ClsName);

            stateMgr = StateManagerFactory.CreateStateManager(stateMgrInfo, translator, setting);

            //
            //创建考试启动停止控件
            //实现单会合考试
            examCtrl.Anchor = AnchorStyles.None;
            examCtrl.Dock   = DockStyle.Fill;
            this.paneExamCtrl.Controls.Add(examCtrl);

            //ExamCtrl控件必须先被add到其父窗口中,然后再进行Initialize
            examCtrl.InitializeExamComponent(setting, mon, translator, stateMgr);

            //初始化声音控件(基础声音控件类)
            SoundCtrl soundCtrl = new SoundCtrl();


            //初始化显示牌控件
            SettingPair spDisplay = new SettingPair();

            spDisplay.ImplementClass = AssemblyInfoFactory.GetType(PracticeConfig.LEDConfig.ClsFilePath, PracticeConfig.LEDConfig.ClsName);
            spDisplay.FilePath       = PracticeConfig.LEDConfig.ConfigFilePath;

            ISettings     dissettings    = new CSetup(spDisplay).Settings;
            DisplayConfig dispalySetting = dissettings as DisplayConfig;

            displaycomm = DisplayFactory.CreateDisplay(PracticeConfig.LED.ClsFilePath, PracticeConfig.LED.ClsName, dispalySetting);

            //初始化摄像头
            Camera camera = new Camera(0);

            camera.Anchor = AnchorStyles.None;
            camera.Dock   = DockStyle.Fill;
            this.groupPanelVideo.Controls.Add(camera);
            this.Move        += new EventHandler(camera.Camera_Move);
            this.FormClosing += new FormClosingEventHandler(camera.Camera_Closing);

            if (IsExam)
            {
                string[] cxs = ExamConfig.LicenseList.Split(new char[] { ';' });
                //初始化车型列表
                List <string> cxList = new List <string>(cxs);

                //用哪个Candidate Infomation Panel
                CandExamCtrl candExamPane;

                if (ExamConfig.HasQueue)
                {
                    //初始化排队列表
                    CandidateQuery candQuery = new CandidateQuery();
                    candQuery.Anchor = AnchorStyles.None;
                    candQuery.Dock   = DockStyle.Fill;
                    this.paneXQueueList.Controls.Add(candQuery);

                    candExamPane = (CandExamCtrl)CreateModule(ExamConfig.ExamCtrl.ClsFilePath, ExamConfig.ExamCtrl.ClsName, new object[] { candQuery });
                }
                else
                {
                    candExamPane = (CandExamCtrl)CreateModule(ExamConfig.ExamCtrl.ClsFilePath, ExamConfig.ExamCtrl.ClsName, new object[] { });
                }

                candExamPane.Dock = DockStyle.Fill;
                candExamPane.InitializeCandExamCtrlComponent(examCtrl, csetting, cxList);
                this.groupPanelCandInfo.Controls.Add(candExamPane);

                //结果显示控件
                ExamResultPanel resultPanel = new ExamResultPanel();
                resultPanel.Anchor            = AnchorStyles.None;
                resultPanel.Dock              = DockStyle.Fill;
                candExamPane.ExamResultReady += new ExamResultDelegate(resultPanel.SetResultText);
                this.paneXResult.Controls.Add(resultPanel);

                candExamPane.SoundChange         += new MessageDelegate(soundCtrl.PlayText);   //注册candExamCtrl的声音变化事件回调函数
                candExamPane.LEDDisplayChange    += new MessageDelegate(displaycomm.ShowText); //注册candExamCtrl的显示牌变化事件回调函数
                candExamPane.CameraChannelChange += new IntegerDelegate(camera.SetChannel);    //注册candExamCtrl的摄像头变化事件回调函数
            }

            //创建考试状态显示面板
            //单会合考试级别扩展功能
            ExamStatusDisplayPanel statePane = new ExamStatusDisplayPanel();

            statePane.Anchor = AnchorStyles.None;
            statePane.InitializeExamComponent(stateMgr);
            this.paneXStatus.Controls.Add(statePane);

            //创建信号显示面板
            SignalDisplay signaldisplay = new SignalDisplay(mon);

            signaldisplay.Anchor = AnchorStyles.None;
            signaldisplay.Dock   = DockStyle.Fill;
            this.paneXSignalDisp.Controls.Add(signaldisplay);

            //用哪个DisplayPanel
            BaseModelDisplayPanel modelDisplayPane = (BaseModelDisplayPanel)CreateModule(PracticeConfig.ModelDisplay.ClsFilePath, PracticeConfig.ModelDisplay.ClsName, new object[] { });

            modelDisplayPane.Anchor = AnchorStyles.None;
            modelDisplayPane.InitializeExamComponent(csetting, mon, stateMgr);
            this.groupPanelModelDisp.Controls.Add(modelDisplayPane);
        }
        public void Execute()
        {
            Console.Clear();
            StateManager   stateManager   = StateManagerFactory.Create();
            ProductManager productManager = ProductManagerFactory.Create();
            OrderManager   orderManager   = OrderManagerFactory.Create();
            Orders         newOrder       = new Orders();


            ConsoleIO.OrderHeader("Add an Order");
            Console.WriteLine("Please enter a future date for the order.");
            newOrder.orderDate = ConsoleIO.GetFutureDateFromUser();
            var numberResponse = orderManager.GetOrderNumber(ConsoleIO.OrderDate);

            newOrder.OrderNumber = numberResponse.OrderNumber;
            newOrder.Name        = ConsoleIO.GetCustomerNameFromUserForAdd();
            Console.Clear();
            var response = stateManager.ListAllStates();

            if (response.Success)
            {
                ConsoleIO.OrderHeader("Add an Order");
                ConsoleIO.DisplayAllStates(response.StateList);
                while (true)
                {
                    string state    = ConsoleIO.GetStateFromUserForAdd();
                    var    StateTax = stateManager.LookupState(state);
                    if (StateTax.Success)
                    {
                        newOrder.State   = StateTax.StateTax.State;
                        newOrder.TaxRate = StateTax.StateTax.TaxRate;
                        break;
                    }
                    else
                    {
                        Console.WriteLine(StateTax.Message);
                        ConsoleIO.EnterKeyToContinue();
                    }
                }
                ConsoleIO.OrderHeader("Add an Order");
                var productresponse = productManager.ProductList();
                if (productresponse.Success)
                {
                    ConsoleIO.DisplayAllProducts(productresponse.Products);

                    while (true)
                    {
                        string product         = ConsoleIO.GetProductTypeFromUser();
                        var    customerProduct = productManager.ChooseProduct(product);
                        if (customerProduct.Success)
                        {
                            newOrder.PrductType             = customerProduct.Product.ProductType;
                            newOrder.CostPerSqureFoot       = customerProduct.Product.CostPerSquareFoot;
                            newOrder.LaborCostPerSquareFoot = customerProduct.Product.LaborCostPerSquareFoot;
                            break;
                        }

                        else
                        {
                            Console.WriteLine(customerProduct.Message);
                            ConsoleIO.EnterKeyToContinue();
                        }
                    }
                    ConsoleIO.OrderHeader("Add an Order");
                    Console.WriteLine(ConsoleIO.SeparatorBar);
                    newOrder.Area = ConsoleIO.GetAreaFromUser();



                    newOrder.MaterialCost = newOrder.Area * newOrder.CostPerSqureFoot;
                    newOrder.LaborCost    = newOrder.Area * newOrder.LaborCostPerSquareFoot;
                    newOrder.Tax          = (newOrder.MaterialCost + newOrder.LaborCost) * (newOrder.TaxRate / 100);
                    newOrder.Total        = newOrder.MaterialCost + newOrder.LaborCost + newOrder.Tax;

                    ConsoleIO.OrderHeader("Add an Order");
                    ConsoleIO.DisplayOrders(newOrder);
                    Console.WriteLine(ConsoleIO.SeparatorBar);
                    string answer = ConsoleIO.GetYesNoAnswerFromUser("Would you like to place this order?: ");
                    if (answer == "Y")
                    {
                        var createresponse = orderManager.CreateOrder(newOrder, ConsoleIO.OrderDate);
                        if (createresponse.Success)
                        {
                            Console.WriteLine("The order was placed!");
                            ConsoleIO.EnterKeyToContinue();
                        }
                        else
                        {
                            Console.WriteLine(createresponse.Message);
                            ConsoleIO.EnterKeyToContinue();
                        }
                    }
                    else
                    {
                        Console.WriteLine("The order was cancelled.");
                        ConsoleIO.EnterKeyToContinue();
                    }
                }
                else
                {
                    Console.WriteLine(productresponse.Message);
                    ConsoleIO.EnterKeyToContinue();
                }
            }

            else
            {
                Console.WriteLine(response.Message);
                ConsoleIO.EnterKeyToContinue();
            }
        }
Exemple #10
0
        public void Execute()
        {
            OrderManager   manager        = OrderManagerFactory.Create();
            StateManager   stateManager   = StateManagerFactory.Create();
            ProductManager productManager = ProductManagerFactory.Create();


            ConsoleIO.OrderHeader("Edit an Order:");
            Console.WriteLine("Please enter the date of the order you would like to edit.");

            var repo = manager.GetAllOrders(ConsoleIO.GetDateFromUser());

            if (repo.Success)
            {
                ConsoleIO.OrderHeader("Edit an Order:");
                ConsoleIO.DisplayAllOdersForDate(repo.Orders);
                Console.WriteLine(ConsoleIO.SeparatorBar);
                Console.WriteLine();

                int orderNumber = ConsoleIO.GetOrderNumberFromUser("Which order number would you like to edit?: ");
                var ordertoedit = manager.LookupOrder(ConsoleIO.OrderDate, orderNumber);
                if (ordertoedit.Success)
                {
                    ConsoleIO.OrderHeader("Edit an Order:");
                    Console.WriteLine("Type the information to edit in the following prompts.\n If you wish to keep the information in parenthesis simply press enter.");
                    string name = ConsoleIO.GetCustomerNameEdit(ordertoedit.Order.Name);
                    if (!string.IsNullOrEmpty(name))
                    {
                        ordertoedit.Order.Name = name;
                    }
                    var response = stateManager.ListAllStates();
                    if (response.Success)
                    {
                        ConsoleIO.OrderHeader("Edit an Order:Type the information to edit in the following prompts.\n If you wish to keep the information in parenthesis simply press enter.");
                        ConsoleIO.DisplayAllStates(response.StateList);
                        Console.WriteLine();
                        while (true)
                        {
                            string state = ConsoleIO.GetStateForEdit(ordertoedit.Order.State);
                            if (!string.IsNullOrEmpty(state))
                            {
                                var StateTax = stateManager.LookupState(state);
                                if (StateTax.Success)
                                {
                                    ordertoedit.Order.State   = StateTax.StateTax.State;
                                    ordertoedit.Order.TaxRate = StateTax.StateTax.TaxRate;
                                    break;
                                }
                                else
                                {
                                    Console.WriteLine(StateTax.Message);
                                    ConsoleIO.EnterKeyToContinue();
                                }
                            }
                            break;
                        }
                    }
                    ConsoleIO.OrderHeader("Edit an Order:Type the information to edit in the following prompts.\n If you wish to keep the information in parenthesis simply press enter.");
                    var productresponse = productManager.ProductList();
                    if (productresponse.Success)
                    {
                        ConsoleIO.DisplayAllProducts(productresponse.Products);
                        Console.WriteLine();

                        while (true)
                        {
                            string product = ConsoleIO.GetProductTypeForEdit(ordertoedit.Order.PrductType);
                            if (!string.IsNullOrEmpty(product))
                            {
                                var customerProduct = productManager.ChooseProduct(product);
                                if (customerProduct.Success)
                                {
                                    ordertoedit.Order.PrductType             = customerProduct.Product.ProductType;
                                    ordertoedit.Order.CostPerSqureFoot       = customerProduct.Product.CostPerSquareFoot;
                                    ordertoedit.Order.LaborCostPerSquareFoot =
                                        customerProduct.Product.LaborCostPerSquareFoot;
                                    break;
                                }

                                else
                                {
                                    Console.WriteLine(customerProduct.Message);
                                    ConsoleIO.EnterKeyToContinue();
                                }
                            }
                            break;
                        }

                        while (true)
                        {
                            decimal area;
                            ConsoleIO.OrderHeader("Edit an Order:Type the information to edit in the following prompts. \nIf you wish to keep the information in parenthesis simply press enter.");
                            Console.Write($"Enter the squarefootage for the floor ({ordertoedit.Order.Area}): ");
                            string input = Console.ReadLine();
                            if (string.IsNullOrEmpty(input))
                            {
                                break;
                            }
                            if (!decimal.TryParse(input, out area))
                            {
                                Console.WriteLine("You must enter valid number.");
                                Console.WriteLine("Press any key to continue...");
                                Console.ReadKey();
                            }
                            if (area < 100)
                            {
                                Console.WriteLine("The square foot area must be at least 100 square feet.");
                                ConsoleIO.EnterKeyToContinue();
                            }

                            else
                            {
                                ordertoedit.Order.Area = area;
                                break;
                            }
                        }
                        ConsoleIO.OrderHeader("Edit an Order:");
                        ConsoleIO.DisplayOrders(ordertoedit.Order);
                        string answer = ConsoleIO.GetYesNoAnswerFromUser("Would you like to update this order?: ");
                        if (answer == "Y")
                        {
                            var editResponse = manager.EditOrder(ordertoedit.Order, ConsoleIO.OrderDate);
                            if (editResponse.Success)
                            {
                                Console.WriteLine("The order was updated!");
                                ConsoleIO.EnterKeyToContinue();
                            }
                            else
                            {
                                Console.WriteLine(editResponse.Message);
                                ConsoleIO.EnterKeyToContinue();
                            }
                        }
                        else
                        {
                            Console.WriteLine("The edit was cancelled.");
                            ConsoleIO.EnterKeyToContinue();
                        }


                        ordertoedit.Order.MaterialCost = ordertoedit.Order.Area * ordertoedit.Order.CostPerSqureFoot;
                        ordertoedit.Order.LaborCost    = ordertoedit.Order.Area * ordertoedit.Order.LaborCostPerSquareFoot;
                        ordertoedit.Order.Tax          = (ordertoedit.Order.MaterialCost + ordertoedit.Order.LaborCost) *
                                                         (ordertoedit.Order.TaxRate / 100);
                        ordertoedit.Order.Total = ordertoedit.Order.MaterialCost + ordertoedit.Order.LaborCost +
                                                  ordertoedit.Order.Tax;

                        Console.Clear();
                        ConsoleIO.DisplayOrders(ordertoedit.Order);
                        Console.WriteLine(ConsoleIO.SeparatorBar);
                    }

                    else
                    {
                        Console.WriteLine(response.Message);
                        ConsoleIO.EnterKeyToContinue();
                    }
                }

                else
                {
                    Console.WriteLine(ordertoedit.Message);
                    ConsoleIO.EnterKeyToContinue();
                }
            }
            else
            {
                Console.WriteLine(repo.Message);
                ConsoleIO.EnterKeyToContinue();
            }
        }