public IActionResult AddStation(CreateStationViewModel stationToAdd) { var meteoData = new MeteoDataDBContext(); var stationExists = meteoData .Stations .Any(station => station.Name.ToLower() == stationToAdd.StationName.ToLower()); if (string.IsNullOrEmpty(stationToAdd.StationName)) { ModelState.AddModelError(string.Empty, STATION_NAME_INVALID); return(View()); } if (!stationExists) { meteoData .Stations .Add( new Station { Name = stationToAdd.StationName } ); meteoData.SaveChanges(); return(RedirectToAction("Index", "Home")); } ModelState.AddModelError(string.Empty, STATION_ALREADY_EXISTS); return(View()); }
public IActionResult AddAvailabilityPeriod(CreateStationAvailabilityViewModel availabilityPeriod) { var meteoData = new MeteoDataDBContext(); var station = meteoData .Stations .FirstOrDefault(x => x.Name.ToLower() == availabilityPeriod.StationName.ToLower()); if (station == null) { ModelState.AddModelError(string.Empty, STATION_DOES_NOT_EXIST); availabilityPeriod.StationNames = meteoData .Stations .Select(x => new SelectListItem { Text = x.Name, Value = x.Name }); return(View(availabilityPeriod)); } var availabilityPeriodToAdd = new StationAvailabilityPeriod { // TODO: validate these From = availabilityPeriod.From, To = availabilityPeriod.To, Station = station }; meteoData.StationsAvailabilityPeriods.Add(availabilityPeriodToAdd); meteoData.SaveChanges(); return(RedirectToAction("Index", "Home")); }
public IActionResult AddStationData() { var meteoData = new MeteoDataDBContext(); var stationNames = meteoData .Stations .Select(x => new SelectListItem { Text = x.Name, Value = x.Name }); var viewModel = new NewStationDataViewModel { Date = DateTime.Now, StationNames = stationNames }; return(View(viewModel)); }
public IActionResult AddAvailabilityPeriod() { var meteoData = new MeteoDataDBContext(); var stationNames = meteoData .Stations .Select(x => new SelectListItem { Text = x.Name, Value = x.Name }); var viewModel = new CreateStationAvailabilityViewModel { StationNames = stationNames, From = DateTime.Now, To = DateTime.Now }; return(View(viewModel)); }
public IActionResult Index() { var meteoData = new MeteoDataDBContext(); var stationNames = meteoData.Stations.Select(x => new SelectListItem { Text = x.Name, Value = x.Name } ); var viewModel = new GraphicalStationDataViewModel { From = DateTime.Now, To = DateTime.Now, StationNames = stationNames }; return(View(viewModel)); }
public IActionResult AddStationData(NewStationDataViewModel stationData) { var meteoData = new MeteoDataDBContext(); var station = meteoData .Stations .FirstOrDefault(x => x.Name.ToLower() == stationData.StationName.ToLower()); if (station == null) { ModelState.AddModelError(string.Empty, STATION_DOES_NOT_EXIST); stationData.StationNames = meteoData .Stations .Select(x => new SelectListItem { Text = x.Name, Value = x.Name }); return(View(stationData)); } // TODO: validate those values var stationDataToAdd = new DayWeatherData { Station = station, Date = stationData.Date, Precipitation = stationData.Precipitation, Temperature = stationData.Temperature, ThunderCount = stationData.ThunderCount, Wind = stationData.Wind }; meteoData.DaysData.Add(stationDataToAdd); meteoData.SaveChanges(); return(RedirectToAction("Index", "Home")); }
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")); }