public ActionResult Add(CityModify cityView, HttpPostedFileBase picture)
        {
            if (!ModelState.IsValid)
            {
                ModelState.AddModelError(string.Empty, "Please check all values and try again!");
                PopulateCountriesDropDownList(cityView.CountryId);
                return(View(cityView));
            }

            if (db.Cities.GetByName(cityView.Name, cityView.CountryId) != null)
            {
                ModelState.AddModelError(string.Empty, "This city is already exist on our site!");
                PopulateCountriesDropDownList(cityView.CountryId);
                return(View(cityView));
            }

            var cityModel = Mapper.Map <City>(cityView);
            var addedCity = db.Cities.Add(cityModel);

            db.Save();

            if (picture?.ContentLength > 0)
            {
                var directoryPath = Path.Combine(Server.MapPath("~/Images/City"), addedCity.Id.ToString());
                Directory.CreateDirectory(directoryPath);
                var filePath = Path.Combine(directoryPath, "1.jpg");
                picture.SaveAs(filePath);
            }

            return(RedirectToAction("Index"));
        }
        public ActionResult Edit(CityModify cityView, HttpPostedFileBase picture)
        {
            if (!ModelState.IsValid)
            {
                ModelState.AddModelError(string.Empty, "Please check all values and try again!");
                return(View(cityView));
            }

            if (db.Cities.GetByName(cityView.Name, cityView.CountryId) != null)
            {
                ModelState.AddModelError(string.Empty, "This city is epsent on the site!");
                return(View(cityView));
            }

            try
            {
                var cityModel = Mapper.Map <City>(cityView);
                db.Cities.Update(cityModel);

                if (picture.ContentLength > 0)
                {
                    var directoryPath = Path.Combine(Server.MapPath("~/Pictures/City"), cityModel.Id.ToString());
                    Directory.CreateDirectory(directoryPath);
                    var filePath = Path.Combine(directoryPath, "main.jpg");
                    picture.SaveAs(filePath);
                }

                db.Save();

                return(View(cityView));
            }
            catch (Exception)
            {
                ModelState.AddModelError("", "Unable to save changes. Try again.");

                return(View(cityView));
            }
        }