Example #1
0
        private void UpdateEnterpriseLocation(EnterpriseLocationModel enterpriseLocation)
        {
            if (enterpriseLocation != null)
            {
                Rp.ExecuteAction(() =>
                {
                    var dbEnterpriseLocation = (from el in ProxylessContext.EnterpriseLocations.Where(el2 => el2.IsActive)
                                                where el.PKID == enterpriseLocation.PKID
                                                select el).FirstOrDefault();

                    if (dbEnterpriseLocation != null)
                    {
                        dbEnterpriseLocation.Address1 = enterpriseLocation.Location != null ? enterpriseLocation.Location.Address1 : null;
                        dbEnterpriseLocation.Address2 = enterpriseLocation.Location != null ? enterpriseLocation.Location.Address2 : null;
                        dbEnterpriseLocation.City     = enterpriseLocation.Location != null ? enterpriseLocation.Location.City : null;
                        dbEnterpriseLocation.Country  = enterpriseLocation.Location != null && enterpriseLocation.Location.Country != null
                                                        ? enterpriseLocation.Location.Country.ISOCountryCode
                                                        : null;
                        dbEnterpriseLocation.Phone = enterpriseLocation.Phone;
                        dbEnterpriseLocation.PhoneISOCountryCode = enterpriseLocation.PhoneISOCountryCode;
                        dbEnterpriseLocation.State = enterpriseLocation.Location != null && enterpriseLocation.Location.State != null
                                                        ? enterpriseLocation.Location.State.ISOStateCode
                                                        : null;
                        dbEnterpriseLocation.PostalCode = enterpriseLocation.Location != null
                                                        ? enterpriseLocation.Location.PostalCode
                                                        : null;
                    }
                });
            }
        }
Example #2
0
        public void UpdateEnterprise(int deviceId, EnterpriseModel enterprise, EnterpriseLocationModel enterpriseLocation)
        {
            if (enterprise != null)
            {
                RootRepository.SecurityRepository.AssertDevicePermissions(deviceId);

                UpdateEnterprise(enterprise);
                UpdateEnterpriseLocation(enterpriseLocation);

                Rp.ExecuteAction(
                    () => ProxylessContext.LogValidationFailSaveChanges(RootRepository.SecurityRepository.AuditLogUserId));
            }
        }
Example #3
0
        public List <EnterpriseModel> GetSearchBingEnterprises(float?hotelLatitude, float?hotelLongitude, float radiusInKilometers, string text, EnterpriseSearchSortTypes sortType, string culture, IEnumerable <string> excludeBingIds = null)
        {
            List <EnterpriseModel> enterprises = new List <EnterpriseModel>();

            if (hotelLatitude.HasValue && hotelLongitude.HasValue)
            {
                var bingAppId       = GetBingAppId();
                var enUsCultureInfo = new CultureInfo("en-US");
                var latitude        = hotelLatitude.Value;
                var longitude       = hotelLongitude.Value;

                var searchRequest = new Bing.Search.SearchRequest()
                {
                    Credentials = new Bing.Search.Credentials()
                    {
                        ApplicationId = bingAppId
                    },
                    Culture       = FormatCulture(culture),
                    SearchOptions = new Bing.Search.SearchOptions()
                    {
                        Count       = 20,
                        ListingType = Bing.Search.ListingType.Business,
                        Radius      = radiusInKilometers,
                        SortOrder   = Bing.Search.SortOrder.Popularity
                    },
                    StructuredQuery = new Bing.Search.StructuredSearchQuery()
                    {
                        Location = latitude.ToString(enUsCultureInfo) + ", " + longitude.ToString(enUsCultureInfo),
                        Keyword  = text
                    },
                    UserProfile = new Bing.Search.UserProfile()
                    {
                        CurrentLocation = new Bing.Search.UserLocation()
                        {
                            Latitude  = latitude,
                            Longitude = longitude
                        }
                    }
                };

                var searchServiceService = new Bing.Search.SearchServiceClient("BasicHttpBinding_ISearchService");
                var searchResponse       = searchServiceService.Search(searchRequest);

                if (searchResponse != null &&
                    searchResponse.ResultSets != null && searchResponse.ResultSets.Count() > 0 &&
                    searchResponse.ResultSets[0].Results != null && searchResponse.ResultSets[0].Results.Count() > 0)
                {
                    Bing.Search.Address address;
                    Bing.Search.BusinessSearchResult businessSearchResult;
                    EnterpriseLocationModel          enterpriseLocation;
                    EnterpriseModel             enterprise;
                    Bing.Search.GeocodeLocation geocodeLocation;

                    foreach (Bing.Search.SearchResultBase searchResultBase in searchResponse.ResultSets[0].Results)
                    {
                        if (searchResultBase is Bing.Search.BusinessSearchResult &&
                            searchResultBase.LocationData != null &&
                            searchResultBase.LocationData.Locations != null && searchResultBase.LocationData.Locations.Count > 0)
                        {
                            businessSearchResult = searchResultBase as Bing.Search.BusinessSearchResult;

                            if (excludeBingIds == null || !excludeBingIds.Contains(businessSearchResult.Id))
                            {
                                enterprise = new EnterpriseModel()
                                {
                                    EnterpriseLocations = new List <EnterpriseLocationModel>(),
                                    Name       = businessSearchResult.Name,
                                    WebsiteUrl = businessSearchResult.Website != null?businessSearchResult.Website.ToString() : null
                                };

                                enterpriseLocation = new EnterpriseLocationModel()
                                {
                                    BingId               = businessSearchResult.Id,
                                    Blacklisted          = false,
                                    DistanceInKilometers = businessSearchResult.Distance,
                                    LocalHours           = businessSearchResult.AdditionalProperties.ContainsKey("HoursOfOperation") ? businessSearchResult.AdditionalProperties["HoursOfOperation"].ToString().ToLower() : null,
                                    Phone = businessSearchResult.PhoneNumber
                                };

                                geocodeLocation = searchResultBase.LocationData.Locations.FirstOrDefault();

                                address = businessSearchResult.Address;

                                if (address != null)
                                {
                                    enterpriseLocation.Location = new LocationModel()
                                    {
                                        Address1       = address.AddressLine,
                                        City           = address.PostalTown ?? address.Locality,
                                        ISOCountryCode = address.CountryRegion,
                                        PostalCode     = address.PostalCode,
                                        ISOStateCode   = address.AdminDistrict
                                    };

                                    if (geocodeLocation.Latitude != 0 && geocodeLocation.Longitude != 0)
                                    {
                                        enterpriseLocation.Location.Latitude = ( float )geocodeLocation.Latitude;
                                    }
                                    enterpriseLocation.Location.Longitude = ( float )geocodeLocation.Longitude;

                                    enterpriseLocation.PhoneISOCountryCode = enterpriseLocation.Location.ISOCountryCode;
                                }

                                // TODO: JD: Get culture
                                enterpriseLocation.TranslatedHours.Add("EN", enterpriseLocation.LocalHours);

                                ((List <EnterpriseLocationModel>)enterprise.EnterpriseLocations).Add(enterpriseLocation);

                                enterprises.Add(enterprise);
                            }
                        }
                    }
                }

                if (enterprises.Any())
                {
                    switch (sortType)
                    {
                    case EnterpriseSearchSortTypes.ALAPHABETICAL:
                        enterprises = enterprises.OrderBy(e => e.Name).ThenBy(e => e.EnterpriseLocations.Min(el => el.DistanceInMeters)).ToList();

                        break;

                    case EnterpriseSearchSortTypes.NEAREST:
                        enterprises = enterprises.OrderBy(e => e.EnterpriseLocations.Min(el => el.DistanceInMeters)).ToList();

                        break;
                    }
                }
            }

            return(enterprises);
        }
Example #4
0
        public JsonNetResult UpdateEnterprise(int deviceId, EnterpriseModel enterprise, EnterpriseLocationModel enterpriseLocation)
        {
            ConnectCmsRepository.EnterpriseRepository.UpdateEnterprise(deviceId, enterprise, enterpriseLocation);

            return(JsonNet(true));
        }