public JsonResult GetEnterprisesCloseToMyLocation(string latitude, string longitude) { var enterprises = Db.Enterprises.GetNearbyEnterprises(latitude, longitude); var searchViewModel = new MainSearchViewModel { Enterprises = new List <LightEnterprise>() }; foreach (var enterpriseViewModel in enterprises.Select(enterprise => new LightEnterprise { Key = EnterpriseHelper.GetKey(enterprise.Id), Name = enterprise.Name, LocationInfo = EnterpriseHelper.FormatDisplayStreet(enterprise), DistanceFromMyLocation = string.Empty, Categories = EnterpriseHelper.GetDisplayLabelsCategories(enterprise.Categories), Coordinates = enterprise.Coordinates, })) { searchViewModel.Enterprises.Add(enterpriseViewModel); } var myCoord = new GeoCoordinate(double.Parse(latitude, CultureInfo.InvariantCulture), double.Parse(longitude, CultureInfo.InvariantCulture)); foreach (var enterprise in searchViewModel.Enterprises) { var enterpriseCoord = new GeoCoordinate(enterprise.Coordinates.Lat, enterprise.Coordinates.Lng); var distance = myCoord.GetDistanceTo(enterpriseCoord); enterprise.DistanceFromMyLocation = string.Format("{0}km", Math.Round((distance / 1000), 1)); } return(Json(searchViewModel)); }
public JsonResult MainSearch(string searchTerm) { if (string.IsNullOrEmpty(searchTerm)) { return(Json(null)); } var enterprises = Db.Enterprises.MainSearch(searchTerm); var searchViewModel = new MainSearchViewModel { SearchQuery = searchTerm, Enterprises = new List <LightEnterprise>(), Locations = new List <string> { "Tumba", "Tullinge" }, Categories = new List <string>() }; var categories = GeneralHelper.GetCategories().Where(c => c.Text.ToLower().StartsWith(searchTerm.ToLower())); if (categories.Any()) { searchViewModel.Categories = categories.Select(c => c.Text).ToList(); } foreach (var enterpriseViewModel in enterprises.Select(enterprise => new LightEnterprise { Key = EnterpriseHelper.GetKey(enterprise.Id), Name = enterprise.Name, LocationInfo = EnterpriseHelper.FormatDisplayStreet(enterprise), DistanceFromMyLocation = string.Empty, Categories = EnterpriseHelper.GetDisplayLabelsCategories(enterprise.Categories) })) { searchViewModel.Enterprises.Add(enterpriseViewModel); } return(Json(searchViewModel)); }
public ActionResult CreateTempEnterprise(EnterpriseViewModel viewModel) { if (!string.IsNullOrEmpty(viewModel.Nope)) { return(RedirectToAction("Index", "Home")); } if (string.IsNullOrEmpty(viewModel.Name)) { ModelState.AddModelError("Name", "Ange restaurangens namn"); } if (viewModel.DisplayCategories == null || viewModel.DisplayCategories.Count < 1) { ModelState.AddModelError("DisplayCategories", "Välj minst en kategori"); } else { viewModel.DisplayCategories = EnterpriseHelper.GetDisplayCategories(viewModel.DisplayCategories); } if (viewModel.Coordinates.Lat < 1 || viewModel.Coordinates.Lng < 1) { ModelState.AddModelError("Coordinates", "Du måste ange någon platsinfo"); } if (ModelState.IsValid) { var categoryList = new List <string>(); categoryList.AddRange(viewModel.DisplayCategories.Take(6).Select(catgory => catgory.Value)); var enterprise = new Enterprise { Name = viewModel.Name, Phone = viewModel.Phone, StreetNumber = viewModel.StreetNumber, StreetRoute = viewModel.StreetRoute, PostalCode = viewModel.PostalCode, PostalTown = viewModel.PostalTown, Commune = viewModel.Commune, County = viewModel.County, SubLocality = viewModel.SubLocality, CountryCode = viewModel.CountryCode ?? "SE", SearchTags = EnterpriseHelper.GenerateSearchTags(viewModel.Name), Coordinates = new Coordinates { Lat = viewModel.Coordinates.Lat, Lng = viewModel.Coordinates.Lng }, Categories = categoryList, IsNew = true, OwnedByAccount = false, LockedFromEdit = false, LastUpdated = DateTime.Now, Menu = new Menu() }; if (string.IsNullOrEmpty(viewModel.Id)) { enterprise.Id = EnterpriseHelper.GetId(GeneralHelper.GetGuid()); Db.Enterprises.CreateEnterprise(enterprise); } else { var enterpriseInDb = Db.Enterprises.GetEnterpriseById(enterprise.Id); if (enterpriseInDb != null) { Db.Enterprises.UpdateEnterprise(enterprise); } } return(Json(new { url = Url.Action("Edit", new { key = EnterpriseHelper.GetKey(enterprise.Id) }) })); } viewModel.ShowForm = true; return(PartialView("~/Views/Manage/_AddEnterpriseForm.cshtml", viewModel)); }