Beispiel #1
0
        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);
        }
Beispiel #2
0
        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);
        }