Beispiel #1
0
        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());
        }
Beispiel #2
0
        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());
        }
Beispiel #3
0
        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());
        }