Ejemplo n.º 1
0
        public ActionResult Create([Bind(Include = "CountryId,Name,LanguageId,CapitalId, CapitalName, CapitalLatitude, CapitalLongitude")] CountryViewModel countryMapped)
        {
            if (ModelState.IsValid)
            {
                long lLastCountryId;
                long lLastCityId;
                CountryConfiguration lCountryConfiguration;
                lCountryConfiguration = new CountryConfiguration();

                Country country = new Country();

                country.Name       = countryMapped.Name;
                country.LanguageId = countryMapped.LanguageId;
                db.Countries.Add(country);
                db.SaveChanges();

                lLastCountryId = lCountryConfiguration.GetMaxCountryId();

                City lCity;
                if (countryMapped.CapitalId == -1) //es una nueva ciudad, se debe ingresar.
                {
                    CityConfiguration lCityConfiguration;
                    lCityConfiguration = new CityConfiguration();

                    Position lPosition = new Position();
                    lCity               = new City();
                    lCity.Name          = countryMapped.CapitalName;
                    lPosition.Name      = countryMapped.CapitalName + " - Ciudad";
                    lPosition.Latitude  = double.Parse(countryMapped.CapitalLatitude);
                    lPosition.Longitude = double.Parse(countryMapped.CapitalLongitude);
                    lCity.Country       = country;
                    lCity.CountryId     = lLastCountryId;
                    db.Positions.Add(lPosition);
                    db.Cities.Add(lCity);
                    db.SaveChanges();
                    lLastCityId = lCityConfiguration.GetMaxCityId();
                }
                else
                {
                    lCity       = db.Cities.Find(countryMapped.CapitalId);
                    lLastCityId = lCity.CityId;
                }

                //actualiza la informacion del pais con la capital
                country.Capital         = lCity;
                country.CapitalId       = lLastCityId;
                db.Entry(country).State = EntityState.Modified;
                db.SaveChanges();
            }
            return(Redirect("/Countries"));
            //return View("~/Views/Localization/Countries/Index.cshtml", db.Countries.ToList());
        }
Ejemplo n.º 2
0
        public ActionResult Create([Bind(Include = "CityId, Name, Latitude, Longitude, CountryId, CountryName, CountryLanguageId")] CityViewModel cityViewModelMapped)
        {
            if (ModelState.IsValid)
            {
                City city = new City();

                long     positionId   = GetPositionId(cityViewModelMapped.Latitude, cityViewModelMapped.Longitude);
                Position positionCity = new Position();
                //Not exist position
                if (positionId == 0)
                {
                    positionCity.Latitude  = cityViewModelMapped.Latitude;
                    positionCity.Longitude = cityViewModelMapped.Longitude;
                    positionCity.Name      = cityViewModelMapped.Name + " - Ciudad";
                    city.Position          = positionCity;
                }
                else
                {
                    city.PositionId = positionId;
                }

                Country country;
                if (cityViewModelMapped.CountryId == -1) //es una nueva pais, se debe ingresar.
                {
                    CountryConfiguration lCountryConfiguration = new CountryConfiguration();
                    country            = new Country();
                    country.Name       = cityViewModelMapped.CountryName;
                    country.LanguageId = cityViewModelMapped.CountryLanguageId;
                    db.Countries.Add(country);
                    city.Country = country;
                    db.SaveChanges();
                    city.CountryId = lCountryConfiguration.GetMaxCountryId();
                }
                else
                {
                    city.CountryId = cityViewModelMapped.CountryId;
                }

                city.Name = cityViewModelMapped.Name;

                db.Cities.Add(city);
                db.SaveChanges();
            }
            return(Redirect("/Cities"));
            //return View("~/Views/Localization/Cities/Index.cshtml", db.Cities.ToList());
        }