public SearchForecastsViewModel SearchForecastsHelper(SearchForecastsViewModel model)
        {
            IQueryable <Forecast> forecastList = forecastRepoInterface.ForecastList;

            if (model.ClassificationID != null)
            {
                forecastList = forecastList.Where(f => f.Crop.ClassificationID == model.ClassificationID);
            }

            if (model.Id != null)
            {
                forecastList = forecastList.Where(f => f.Id == model.Id);
            }

            // Do it for Crop as well
            if (model.CropID != null)
            {
                forecastList = forecastList.Where(f => f.CropID == model.CropID);
            }

            // Start and End date searching
            if (model.StartSearchDate != null)
            {
                forecastList = forecastList.Where(f => f.StartDate >= model.StartSearchDate.Value.Date);
            }
            if (model.EndSearchDate != null)
            {
                forecastList = forecastList.Where(f => f.EndDate <= model.EndSearchDate.Value.Date);
            }

            model.ForecastList = forecastList.ToList <Forecast>();

            return(model);
        }
예제 #2
0
        public IActionResult SearchDemandForecasts(SearchForecastsViewModel model)
        {
            ViewData["CropList"] = new SelectList(database.Crops, "CropID", "CropName");

            IQueryable <Forecast> forecastList = database.Forecasts.Include(f => f.Crop).ThenInclude(c => c.Classification);

            //.ToList<Forecast>(); ToList gets data from the databse
            //.Include(d => d.Crop.Classification)

            if (model.ClassificationID != null)
            {
                forecastList = forecastList.Where(f => f.Crop.ClassificationID == model.ClassificationID);
            }


            // Do it for Crop as well
            if (model.CropID != null)
            {
                forecastList = forecastList.Where(f => f.Crop.CropID == model.CropID);
            }

            // Start and End date searching
            if (model.StartSearchDate != null)
            {
                forecastList = forecastList.Where(f => f.StartDate >= model.StartSearchDate.Value.Date);
            }
            if (model.EndSearchDate != null)
            {
                forecastList = forecastList.Where(f => f.EndDate <= model.EndSearchDate.Value.Date);
            }

            model.ForecastList = forecastList.ToList <Forecast>();

            return(View(model));
        }
예제 #3
0
        public IActionResult SearchDemandForecasts()
        {
            ViewData["CropList"] = new SelectList(database.Crops, "CropID", "CropName");

            SearchForecastsViewModel model = new SearchForecastsViewModel();

            return(View(model));
        }
        public IActionResult SearchForecasts()
        {
            PopulateDropDownList();

            SearchForecastsViewModel model = new SearchForecastsViewModel();

            return(View(model));
        }
        public IActionResult SearchForecasts(SearchForecastsViewModel model)
        {
            PopulateDropDownList();

            SearchForecastsViewModel resultModel = new SearchForecastsViewModel();

            resultModel = SearchForecastsHelper(model);

            return(View(resultModel));
        }
        public void ShouldSearchForecastsWithoutInputs()
        {
            // 1. Arrange
            IQueryable <Forecast> mockForecastList = PopulateForecasts();

            mockForecastRepo.Setup(m => m.ForecastList).Returns(mockForecastList);

            // 2. Act
            SearchForecastsViewModel model  = new SearchForecastsViewModel();
            SearchForecastsViewModel result = analystController.SearchForecastsHelper(model);

            // 3. Assert
            Assert.Equal(11, result.ForecastList.Count);
            Assert.Equal(mockForecastList.ToList <Forecast>(), model.ForecastList);
        }
        public void ShouldSearchForecastsWithCropInput()
        {
            // 1. Arrange
            IQueryable <Forecast> mockForecastList = PopulateForecasts();

            mockForecastRepo.Setup(m => m.ForecastList).Returns(mockForecastList);

            // 2. Act
            SearchForecastsViewModel model = new SearchForecastsViewModel();

            model.CropID = 1;
            SearchForecastsViewModel result = analystController.SearchForecastsHelper(model);

            List <Forecast> expectedSearchResult = mockForecastList.Where(m => m.CropID == 1).ToList <Forecast>();

            // 3. Assert
            Assert.Equal(10, result.ForecastList.Count);
            Assert.Equal(expectedSearchResult, model.ForecastList);
        }