public void SaveOrUpdatePlace(PlaceViewModel Restaurant) { var p = new Place(); if (Restaurant.Id.HasValue) { p = placesRepository.GetPlace(Restaurant.Id.Value); if (p == default(Place)) throw new KeyNotFoundException("La id del restaurante no existe."); var oldAddress = p.Address; p.CloseHour = Restaurant.CloseHours; p.OpenHour = Restaurant.OpenHours; p.CityId = Int32.Parse(Restaurant.CityId); p.CategoryId = Int32.Parse(Restaurant.CategoryId); oldAddress.Street = Restaurant.Address; oldAddress.ZipCode = Restaurant.ZipCode; oldAddress.Col = Restaurant.Colony; p.Name = Restaurant.Name; p.Phone = Restaurant.Phone; if (Restaurant.Image != null ) { if (!ImageService.ValidateImage(Restaurant.Image)) throw new Exception("Imagen en formato invalido."); ImageService.Image = Restaurant.Image; ImageService.DirectoryPath = p.Slug; p.ImgUrl = ImageService.SaveImage(); ImageService.Dispose(); } p.Slug = UrlExtensionHelper.CreateSlug(Restaurant.Name); } else { p.Address = new Address { Col = Restaurant.Colony, Street = Restaurant.Address, ZipCode = Restaurant.ZipCode }; p.CategoryId = Int32.Parse(Restaurant.CategoryId); p.CityId = Int32.Parse(Restaurant.CityId); p.CloseHour = Restaurant.CloseHours; p.OpenHour = Restaurant.OpenHours; p.CreatedDate = DateTime.Now; p.Phone = Restaurant.Phone; p.ImgUrl = Restaurant.ImgUrl; p.Name = Restaurant.Name; var slug = UrlExtensionHelper.CreateSlug(Restaurant.Name); p.Slug = slug; if (Restaurant.Image != null) { ImageService.Image = Restaurant.Image; ImageService.DirectoryPath = slug; p.ImgUrl = ImageService.SaveImage(); ImageService.Dispose(); } } placesRepository.SaveOrUpdate(p); }
public void SaveOrUpdate(Place p) { var place = db.Places.FirstOrDefault(x => x.Id == p.Id); if (place == default(Place)) { db.Places.Add(p); } else db.Places.Attach(p); db.SaveChanges(); }