Пример #1
0
        public ActionResult City(CityModel city)
        {
            if (!ModelState.IsValid)
            {
                return PartialView(city);
            }
            
            using (var db = new OnLeaveContext())
            {
                if (city.CityId == 0)
                {
                    if (db.Cities.Any(c => c.Name.ToLower() == city.Name.ToLower()))
                    {
                        ModelState.AddModelError(city.GetPropertyName(() => city.Name), "Дублиран град");
                        return PartialView(city);
                    }

                    // add city
                    db.Cities.Add(new City
                        {
                            Name = city.Name,
                            KeyWords = city.Name,
                            lat = city.latitude,
                            lon = city.longitude
                        });
                }
                else if (city.CityId > 0)
                {
                    var c = db.Cities.FirstOrDefault(cityDB => cityDB.CityId == city.CityId);
                    if (c == null)
                    {
                        ModelState.AddModelError(string.Empty, "Град липсва");                        
                    }

                    if (db.Cities.Any(cityDB => cityDB.CityId != city.CityId && cityDB.Name.ToLower() == city.Name.ToLower()))
                    {
                        ModelState.AddModelError(city.GetPropertyName(() => city.Name), "Дублиран град");
                    }

                    if (!ModelState.IsValid)
                    {
                        return PartialView(city);
                    }

                    c.Name = city.Name;
                    c.KeyWords = city.Name;
                    c.lon = city.longitude;
                    c.lat = city.latitude;
                }

                db.SaveChanges();
                StaticDataProvider.updateCity = true;
            }

            return RedirectToAction("Cities");
        }
Пример #2
0
        public ActionResult SaveBuildingLocation(int buildingId, decimal latitude, decimal longitude)
        {
            using (var db = new OnLeaveContext())
            {
                var buildingDB = db.UtilityBuildings.FirstOrDefault(b => b.UtilityBuildingId == buildingId);
                if (buildingDB == null)
                {
                    return new HttpStatusCodeResult(System.Net.HttpStatusCode.Forbidden);
                }

                if (buildingDB.UserId != User.Identity.GetUserId())
                {
                    return new HttpStatusCodeResult(System.Net.HttpStatusCode.Forbidden);
                }

                buildingDB.lat = latitude;
                buildingDB.lon = longitude;

                db.SaveChanges();
            }
            
            return new HttpStatusCodeResult(System.Net.HttpStatusCode.OK);
        }
Пример #3
0
        public ActionResult DeleteCity(int cityId)
        {
            if (cityId < 0)
            {
                return new HttpStatusCodeResult(System.Net.HttpStatusCode.BadRequest);
            }

            using (var db = new OnLeaveContext())
            {
                var city = db.Cities.FirstOrDefault(c => c.CityId == cityId);
                if (city == null) return new HttpStatusCodeResult(System.Net.HttpStatusCode.NotFound);

                if (db.UtilityBuildings.Any(b => b.CityId == city.CityId))
                {
                    return new HttpStatusCodeResult(System.Net.HttpStatusCode.Forbidden, "Съществуващ хотел от града");
                }

                db.Cities.Remove(city);
                db.SaveChanges();
                StaticDataProvider.updateCity = true;
            }

            return new HttpStatusCodeResult(System.Net.HttpStatusCode.OK);
        }
Пример #4
0
        public ActionResult SaveUtilityBuildingExternal(UtilityBuildingExternalModel model)
        {
            ViewBag.Cities = StaticDataProvider.Cities.Select(c => new SelectListItem { Text = c.Name, Value = c.CityId.ToString() });
            ViewBag.UtilityBuildingTypes = StaticDataProvider.UtilityBuildingTypes.Select(t => new SelectListItem
            {
                Text = t.Description,
                Value = t.UtilityBuildingTypeId.ToString()
            });
            ViewBag.edit = ViewBag.edit ?? false;

            if (!ModelState.IsValid) return PartialView("UtilityBuildingExternal", model);

            if (model.UrlAddress != null && !model.UrlAddress.ToLowerInvariant().Contains("http"))
            {
                // make it absolute
                model.UrlAddress = string.Format("http://{0}", model.UrlAddress);
            }
            
            using (var db = new OnLeaveContext())
            {
                UtilityBuilding building = new UtilityBuilding();
                if (model.Id > 0)
                {
                    building = db.UtilityBuildings
                        .Include(b => b.UtilityBuildingPhotoDetails)
                        .FirstOrDefault(b => b.UtilityBuildingId == model.Id);
                    if (building == null || building.UserId != User.Identity.GetUserId())
                    {
                        new HttpStatusCodeResult(System.Net.HttpStatusCode.NotFound);
                    }

                    building.KeyWords = model.Name;
                    building.PhoneNumber = model.PhoneNumber;
                    building.CityId = model.CityId;
                    building.ExternalUrl = model.UrlAddress;

                    var buildingLocaleBG = building.UtilityBuildingLocales.FirstOrDefault(l => l.LocaleId == (int)LocaleTypes.BG);
                    if (buildingLocaleBG != null)
                    {
                        buildingLocaleBG.Name = model.Name;                        
                    }
                    else
                    {
                        building.UtilityBuildingLocales.Add(new UtilityBuildingLocale
                        {
                            LocaleId = (int)LocaleTypes.BG,
                            Name = model.Name                            
                        });
                    }

                    var buildingLocaleEN = building.UtilityBuildingLocales.FirstOrDefault(l => l.LocaleId == (int)LocaleTypes.EN);
                    if (buildingLocaleEN != null)
                    {
                        if (string.IsNullOrWhiteSpace(model.NameEN))
                        {
                            // remove if no data                             
                            db.UtilityBuildingLocales.Remove(buildingLocaleEN);
                        }
                        else
                        {
                            buildingLocaleEN.Name = model.NameEN;                            
                        }
                    }
                    else
                    {
                        if (!string.IsNullOrWhiteSpace(model.NameEN))
                        {
                            building.UtilityBuildingLocales.Add(new UtilityBuildingLocale
                            {
                                LocaleId = (int)LocaleTypes.EN,
                                Name = model.NameEN                                
                            });
                        }
                    }
                }
                else
                {
                    building = new UtilityBuilding
                    {
                        KeyWords = model.Name,
                        UtilityBuildingTypeId = model.UtilityBuildingTypeId,
                        UserId = User.Identity.GetUserId(),
                        PhoneNumber = model.PhoneNumber,
                        CityId = model.CityId,
                        SystemTypeId = (int)Common.Constant.SystemType.Booking,
                        ExternalUrl = model.UrlAddress
                    };

                    building.UtilityBuildingLocales.Add(new UtilityBuildingLocale
                    {
                        LocaleId = (int)LocaleTypes.BG,
                        Name = model.Name,
                    });

                    if (!string.IsNullOrWhiteSpace(model.NameEN))
                    {
                        building.UtilityBuildingLocales.Add(new UtilityBuildingLocale
                        {
                            LocaleId = (int)LocaleTypes.EN,
                            Name = model.NameEN,
                        });
                    }

                    db.UtilityBuildings.Add(building);
                }                
                
                db.SaveChanges();
                
                model.Id = building.UtilityBuildingId;
                model.PhotoIds = building.UtilityBuildingPhotoDetails.Select(ph => ph.PhotoId).ToList();
            }

            ViewBag.edit = true;            

            ModelState.Clear();
            return PartialView("UtilityBuildingExternal", model);
        }