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")); }