public Hotel GetHotelSetup(int?deviceId, int?hotelId) { if (hotelId.HasValue) { RootRepository.DeviceRepository.GetAutherizedDeviceByHotel(hotelId.Value); } else { if (deviceId.HasValue) { RootRepository.SecurityRepository.AssertDeviceAuthorization(deviceId.Value); var device = RootRepository.DeviceRepository.GetDevice(deviceId.Value); hotelId = device.FKHotel; } else { var fdevice = RootRepository.DeviceRepository.GetAdminDeviceForLoggedInUser(); var fHotel = fdevice == null ? null : fdevice.Hotel; if (fHotel == null) { throw new Exception("This user does not have access to a device"); } RootRepository.SecurityRepository.AssertDeviceAuthorization(fHotel.Devices.First().PKID); hotelId = fHotel.PKID; } } var hotel = Rp.ExecuteAction( () => (from h in ProxylessContext.Hotels .Include(h => h.HotelDetail) .Include(h => h.HotelDetail.LogoImage) .Include(h => h.HotelDetail.LogoOnWhiteImage) .Include(h => h.HotelDetail.MobileBackgroundImage) where h.PKID == hotelId.Value select h).FirstOrDefault()); hotel.HotelDetail.Location.Country = UtilityRepository.GetAllCountries().FirstOrDefault(c => c.ISOCountryCode == hotel.HotelDetail.ISOCountryCode); hotel.HotelDetail.Location.State = hotel.HotelDetail.Location.Country != null ? hotel.HotelDetail.Location.Country.States.FirstOrDefault(s => s.ISOStateCode == hotel.HotelDetail.State) : UtilityRepository.GetAllStates().FirstOrDefault(s => s.ISOStateCode == hotel.HotelDetail.State); return(hotel); }
public HotelDetail UpdateHotelDetail(string pk, string property, object value) { var pkid = int.Parse(pk); var entity = ProxylessContext.HotelDetails.Include(h => h.Hotel.Devices).FirstOrDefault(x => x.PKID == pkid); if (entity == null) { throw new InvalidDataException("The Hotel you are trying to update does not exist"); } RootRepository.SecurityRepository.AssertDeviceAuthorization(entity.Hotel.Devices.First().PKID); var ReflectionObject = entity.GetType(); switch (property) { case "Address1": var loc1 = entity.Location; loc1.Address1 = value.ToString(); entity.Address = loc1.Address; break; case "Address2": var loc2 = entity.Location; loc2.Address2 = value.ToString(); entity.Address = loc2.Address; break; case "PostalCode": entity.Zip = value.ToString(); break; case "Latitude": float lat; if (float.TryParse(value.ToString(), out lat)) { entity.Latitude = lat; } break; case "Longitude": float lon; if (float.TryParse(value.ToString(), out lon)) { entity.Longitude = lon; } break; case "FKState": int fkState; if (int.TryParse(value.ToString(), out fkState)) { entity.State = UtilityRepository.GetAllStates().First(s => s.PKID == fkState).ISOStateCode; } break; case "FKCountry": int fkCountry; if (int.TryParse(value.ToString(), out fkCountry)) { entity.ISOCountryCode = UtilityRepository.GetAllCountries().First(c => c.PKID == ( int )value).ISOCountryCode; } break; case "State": if (value == null) { entity.State = null; } else { var state = value as State; if (state != null) { entity.State = state.ISOStateCode; } } break; case "Country": if (value == null) { entity.ISOCountryCode = null; } else { var country = value as Country; if (country != null) { entity.ISOCountryCode = country.ISOCountryCode; } } break; default: ReflectionObject.GetProperty(property).SetValue(entity, value, null); break; } ProxylessContext.LogValidationFailSaveChanges(RootRepository.SecurityRepository.AuditLogUserId); return(entity); }