public IActionResult AddWeights()
        {
            var meteoData = new MeteoDataDBContext();

            var stationWeights = meteoData
                                 .Stations
                                 .Select(x => new StationWeightViewModel
            {
                StationId     = x.Id,
                StationName   = x.Name,
                StationWeight = 0
            })
                                 .ToList();

            var viewModel = new AddStationWeightsViewModel
            {
                From           = DateTime.Now,
                To             = DateTime.Now,
                StationWeights = stationWeights
            };

            return(View(viewModel));
        }
        public IActionResult AddWeights(AddStationWeightsViewModel weightData)
        {
            var areWeightsValid = weightData.StationWeights.Sum(x => x.StationWeight) == 1;

            if (!areWeightsValid)
            {
                ModelState.AddModelError(string.Empty, INVALID_WEIGHT_SUM);

                return(View(weightData));
            }

            if (weightData.From > weightData.To)
            {
                ModelState.AddModelError(string.Empty, START_CANNOT_BE_AFTER_END);

                return(View(weightData));
            }

            var dbStationWeights = weightData
                                   .StationWeights
                                   .Where(x => x.StationWeight > 0)
                                   .Select(x => new StationWeight
            {
                From      = weightData.From,
                To        = weightData.To,
                StationId = x.StationId,
                Weight    = x.StationWeight
            });

            var meteoData = new MeteoDataDBContext();

            meteoData.StationsWeights.AddRange(dbStationWeights);
            meteoData.SaveChanges();

            return(RedirectToAction("Index", "Home"));
        }