//Zipcode validation pretty sparse as I noticed there are a wide variety of Zipcodes in database
        private SalesAverageReport ZipCodeValidation(SalesAverageReport Model)
        {
            if (Model.UserInputs.Zipcode == "" || Model.UserInputs.Zipcode == null)
            {
                ModelState.AddModelError("UserInputs.Zipcode", "The zipcode can not be empty");
            }

            return(Model);
        }
        public IActionResult Index(SalesAverageReport Model)
        {
            //Send Model data to validation methods, and set equal to result to hold any error messages
            Model = DateValidation(Model);
            Model = ZipCodeValidation(Model);

            //If the ModelState is bad return to page without doing anything to show user
            if (!ModelState.IsValid)
            {
                return(View("Index", Model));
            }

            Model.SalesAverageData = _salesData.GetSalesAverages(Model.UserInputs.Zipcode, Model.UserInputs.StartDate, Model.UserInputs.EndDate);

            return(View(Model));
        }
        private SalesAverageReport DateValidation(SalesAverageReport Model)
        {
            //TODO: Add Check to tell user that the End date is before start date
            if (Model.UserInputs.EndDate < Model.UserInputs.StartDate)
            {
                ModelState.AddModelError("UserInputs.EndDate", "End date must be later than start date");
            }

            //Check if the start date is a future date
            if (Model.UserInputs.StartDate > DateTime.Now.Date)
            {
                ModelState.AddModelError("UserInputs.StartDate", "Start date can not be in the future");
            }

            //Check if the start date is a future date
            if (Model.UserInputs.EndDate > DateTime.Now.Date)
            {
                ModelState.AddModelError("UserInputs.EndDate", "End date can not be in the future");
            }

            return(Model);
        }
        public IActionResult Index()
        {
            SalesAverageReport report = new SalesAverageReport();

            return(View(report));
        }