Esempio n. 1
0
        public bool CheckCountryUnique(CountryDataModel countryDataModel)
        {
            var result = _dbContext.Countries.AsNoTracking().FirstOrDefault(c => c.CountryId != countryDataModel.CountryId &&
                                                                            c.UrlName == countryDataModel.UrlName) == null;

            return(result);
        }
Esempio n. 2
0
        public CountryDataModel CreateCountry(CountryDataModel countryDataModel)
        {
            var result = _dbContext.Countries.Add(countryDataModel).Entity;

            _dbContext.SaveChanges();

            return(result);
        }
Esempio n. 3
0
        private void AddImages(CountryDataModel countryDataModel, ICollection <CountryImage> countryImages)
        {
            var newImageCollection = countryImages
                                     .Where(i => countryDataModel.CountryImages
                                            .All(db => db.ImageId != i.ImageId))
                                     .ToList();

            foreach (var newImage in newImageCollection)
            {
                countryDataModel.CountryImages.Add(newImage);
            }
        }
Esempio n. 4
0
        private void RemoveCountryTours(CountryDataModel country)
        {
            var tours = country.Tours?.ToList();

            if (tours != null && tours.Any())
            {
                foreach (var tour in tours)
                {
                    _dbContext.Tours.Remove(tour);
                }
            }
        }
Esempio n. 5
0
        private void DeleteImages(CountryDataModel countryDataModel, ICollection <CountryImage> countryImages)
        {
            var countryImageForDeleteCollection = countryDataModel.CountryImages.Where(db => countryImages.All(i => i.ImageId != db.ImageId)).ToList();

            foreach (var countryImageForDelete in countryImageForDeleteCollection)
            {
                countryDataModel.CountryImages.Remove(countryImageForDelete);
                var image = _dbContext.Images.FirstOrDefault(i => i.ImageId == countryImageForDelete.ImageId);
                if (image != null)
                {
                    _dbContext.Images.Remove(image);
                }
            }
        }
Esempio n. 6
0
        public void UpdateCountry(CountryDataModel countryDataModel)
        {
            var countryImages = countryDataModel.CountryImages;

            countryDataModel.CountryImages = new HashSet <CountryImage>();

            var entry = _dbContext.Attach(countryDataModel);

            entry.State = EntityState.Modified;
            entry.Collection(c => c.CountryImages).Load();

            UpdateImages(countryDataModel, countryImages);

            _dbContext.SaveChanges();
        }
Esempio n. 7
0
        public void DeleteCountry(CountryDataModel countryDataModel)
        {
            var country = _dbContext.Countries
                          .Include(c => c.CountryImages)
                          .Include(c => c.Tours)
                          .FirstOrDefault(c => c.CountryId == countryDataModel.CountryId);

            if (country != null)
            {
                RemoveCountryTours(country);
                RemoveCountryImages(country);
                _dbContext.Countries.Remove(country);

                _dbContext.SaveChanges();
            }
        }
Esempio n. 8
0
        private void RemoveCountryImages(CountryDataModel country)
        {
            var countryImages = country.CountryImages?.ToList();

            if (countryImages != null && countryImages.Any())
            {
                foreach (var countryImage in country.CountryImages.ToList())
                {
                    var image = countryImage.Image;
                    if (image != null)
                    {
                        _dbContext.Images.Remove(image);
                    }
                }
            }
        }
Esempio n. 9
0
 private void UpdateImages(CountryDataModel countryDataModel, ICollection <CountryImage> countryImages)
 {
     AddImages(countryDataModel, countryImages);
     DeleteImages(countryDataModel, countryImages);
 }