public ActionResult AddCitiesToUser([FromBody] JWTWithObject <List <string> > JWTWithCityNames) { var jwtFromDb = _db.JWTs .FirstOrDefault(o => o.Value == JWTWithCityNames.JwtValue); if (jwtFromDb == null) { return(NotFound("No such JWT")); } var userFromDb = _db.Users .FirstOrDefault(o => o.JWT == jwtFromDb); if (userFromDb == null) { return(NotFound("No such JWT")); } //подгружаем его прогнозы для нахожденія повторок _db.Entry(userFromDb).Collection(u => u.UserWeatherForecasts).Load(); //для каждого города із переданного спіска foreach (var city in JWTWithCityNames.Object) { var forecastFromDb = _db.WeatherForecasts .FirstOrDefault(f => f.City == city); //еслі данного города нет, то нічего не делаем if (forecastFromDb == null) { continue; } //еслі данный город уже есть в спіске у юзера, то нічего не делаем if (userFromDb.UserWeatherForecasts. FirstOrDefault(uwf => uwf.WeatherForecastId == forecastFromDb.Id) != null) { continue; } //іначе добавляем прогноз к юзеру var uwf = new UserWeatherForecast { UserLogin = userFromDb.Login, WeatherForecastId = forecastFromDb.Id, }; userFromDb.UserWeatherForecasts.Add(uwf); forecastFromDb.UserWeatherForecasts.Add(uwf); } _db.SaveChanges(); return(Ok()); }
public ActionResult DeleteCitiesOfUser([FromBody] JWTWithObject <List <string> > JWTWithCityNames) { var jwtFromDb = _db.JWTs .FirstOrDefault(o => o.Value == JWTWithCityNames.JwtValue); if (jwtFromDb == null) { return(NotFound("No such JWT")); } var userFromDb = _db.Users .FirstOrDefault(o => o.JWT == jwtFromDb); if (userFromDb == null) { return(NotFound("No such JWT")); } //подгружаем его прогнозы для нахожденія повторок _db.Entry(userFromDb).Collection(u => u.UserWeatherForecasts).Load(); //для каждого города із переданного спіска foreach (var city in JWTWithCityNames.Object) { var forecastFromDb = _db.WeatherForecasts .FirstOrDefault(f => f.City == city); //еслі данного города нет в прогнозах, то нічего не делаем if (forecastFromDb == null) { continue; } var uwf = userFromDb.UserWeatherForecasts. FirstOrDefault(uwf => uwf.WeatherForecastId == forecastFromDb.Id); //еслі данного города нет в спіске у юзера, то нічего не делаем if (uwf == null) { continue; } _db.UserWeatherForecasts.Remove(uwf); } _db.SaveChanges(); return(Ok()); }
public ActionResult AddItemsToUserBasket([FromBody] JWTWithObject <List <string> > JWTWithItems) { var jwtFromDb = _db.JWTs .FirstOrDefault(o => o.Value == JWTWithItems.JwtValue); if (jwtFromDb == null) { return(NotFound("There is no such JWT")); } var userFromDB = _db.Users .FirstOrDefault(o => o.JWT == jwtFromDb); if (userFromDB == null) { return(NotFound("There is no such JWT")); } _db.Entry(userFromDB).Collection(u => u.UserBaskets).Load(); foreach (var item in JWTWithItems.Object) { var itemFromDB = _db.Items.FirstOrDefault(b => b.Name == item); //if (itemFromDB == null) // continue; //if (userFromDB.UserBaskets.FirstOrDefault(ub => ub.BasketId == itemFromDB.ID) != null) // continue; var ub = new UserBasket { ID = Guid.NewGuid(), UserID = userFromDB.Id, BasketId = itemFromDB.ID, UserLogin = userFromDB.Login }; _db.UserBaskets.Add(ub); } _db.SaveChanges(); return(Ok()); }