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; } }); } }
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)); } }
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); }
public JsonNetResult UpdateEnterprise(int deviceId, EnterpriseModel enterprise, EnterpriseLocationModel enterpriseLocation) { ConnectCmsRepository.EnterpriseRepository.UpdateEnterprise(deviceId, enterprise, enterpriseLocation); return(JsonNet(true)); }