Exemplo n.º 1
0
        public GetAreaResponse GetArea(string area)
        {
            GetAreaResponse response = new GetAreaResponse();

            decimal areaChecker = decimal.MinValue;

            if (decimal.TryParse(area, out areaChecker))
            {
                if (areaChecker > 100M)
                {
                    response.Success = true;
                    response.Area    = areaChecker;
                    return(response);
                }
                else
                {
                    response.Success = false;
                    response.Message = "The area for an order must be greater than 100 square feet.";
                    return(response);
                }
            }
            else
            {
                response.Success = false;
                response.Message = "That was not a valid value for area.";
                return(response);
            }
        }
Exemplo n.º 2
0
        public void QueryUserEditArea(OrderManager manager, List <Order> orders, int index)
        {
            bool divider = false;

            orders[index].DynamicDisplayFormat();
            Instructions.EditingInstructions();
            Prompt.PressKeyToContinue();

            while (!divider)
            {
                string          area         = Query.GetAreaFromUser();
                GetAreaResponse areaResponse = new GetAreaResponse();
                areaResponse = manager.AssignArea(area, FunctionType.EditOrder);
                if (areaResponse.Success)
                {
                    if (areaResponse.Edited)
                    {
                        orders[index].CalculateOrderValues(orders[index].CustomerName, areaResponse.Area, orders[index].Product, orders[index].Taxes);
                        divider = true;
                    }
                    else
                    {
                        divider = true;
                    }
                }
                else
                {
                    Alert.AlertUserInvalidInput(areaResponse);
                }
            }
        }
Exemplo n.º 3
0
        public GetAreaResponse AssignArea(string area, FunctionType type)
        {
            GetAreaResponse response = new GetAreaResponse();

            IGetArea getArea = GetAreaRuleFactory.Create(type);

            response = getArea.GetArea(area);

            return(response);
        }
        public SaveOrderResponse SaveOrder(Order order)
        {
            SaveOrderResponse finalResponse = new SaveOrderResponse();

            AddNameRule     nameRule     = new AddNameRule();
            GetNameResponse nameResponse = new GetNameResponse();

            nameResponse = nameRule.GetName(order.CustomerName);

            AddAreaRule     areaRule     = new AddAreaRule();
            GetAreaResponse areaResponse = new GetAreaResponse();

            areaResponse = areaRule.GetArea(order.Area.ToString());

            AddProductRule     productRule     = new AddProductRule();
            GetProductResponse productResponse = new GetProductResponse();

            productResponse = productRule.GetProduct(order.ProductType);

            AddTaxesRule     taxesRule     = new AddTaxesRule();
            GetTaxesResponse taxesResponse = new GetTaxesResponse();

            taxesResponse = taxesRule.GetTaxes(order.State);

            finalResponse.NameIsOkay    = nameResponse.Success;
            finalResponse.AreaIsOkay    = areaResponse.Success;
            finalResponse.ProductIsOkay = productResponse.Success;
            finalResponse.TaxIsOkay     = taxesResponse.Success;

            if (finalResponse.NameIsOkay && finalResponse.AreaIsOkay && finalResponse.ProductIsOkay && finalResponse.TaxIsOkay)
            {
                finalResponse.EverythingIsAlright = true;
            }
            else
            {
                finalResponse.EverythingIsAlright = false;
            }

            return(finalResponse);
        }
Exemplo n.º 5
0
        public Order CreateNewOrder()
        {
            OrderManager manager  = OrderManagerFactory.Create();
            Order        newOrder = new Order();

            bool   validName = false;
            string finalName = null;

            while (!validName)
            {
                string          name     = Query.GetNameFromUser();
                GetNameResponse response = new GetNameResponse();
                response = manager.AssignCustomerName(name, FunctionType.AddOrder);
                if (response.Success)
                {
                    finalName = response.Name;
                    validName = true;
                }
                else
                {
                    Alert.AlertUserInvalidInput(response);
                }
            }

            bool  validState = false;
            Taxes finalTaxes = null;

            while (!validState)
            {
                string           state    = Query.GetTaxesFromUser();
                GetTaxesResponse response = new GetTaxesResponse();
                response = manager.AssignTaxInfo(state, FunctionType.AddOrder);
                if (response.Success)
                {
                    finalTaxes = response.Taxes;
                    validState = true;
                }
                else
                {
                    Alert.AlertUserInvalidInput(response);
                }
            }

            bool    validProduct = false;
            Product finalProduct = null;

            while (!validProduct)
            {
                string             product  = Query.GetProductFromUser();
                GetProductResponse response = new GetProductResponse();
                response = manager.AssignProductInfo(product, FunctionType.AddOrder);
                if (response.Success)
                {
                    finalProduct = response.Product;
                    validProduct = true;
                }
                else
                {
                    Alert.AlertUserInvalidInput(response);
                }
            }

            bool    validArea = false;
            decimal finalArea = decimal.MinValue;

            while (!validArea)
            {
                string          area     = Query.GetAreaFromUser();
                GetAreaResponse response = new GetAreaResponse();
                response = manager.AssignArea(area, FunctionType.AddOrder);
                if (response.Success)
                {
                    finalArea = response.Area;
                    validArea = true;
                }
                else
                {
                    Alert.AlertUserInvalidInput(response);
                }
            }

            newOrder.CalculateOrderValues(finalName, finalArea, finalProduct, finalTaxes);

            return(newOrder);
        }