public ActionResult Favorites() { var userId = User.Identity.GetUserId(); var userIdGuid = new Guid(userId); var userName = User.Identity.Name; var request = new UserFavoritesRequest { WeathermanEntities = _db, UserId = userIdGuid, UserName = userName }; //If we are able to get the user's favorites, then display them //otherwise, return the user back to the index page. var response = FavoritesService.GetUserFavorites(request); if (response.Success) { return(View(response.FavoritesViewModel)); } return(RedirectToAction("Index")); }
public UserFavoritesResponse GetUserFavorites(UserFavoritesRequest request) { var response = new UserFavoritesResponse() { Success = false, Message = "Unable to get user favorites" }; try { var dbInstance = request.WeathermanEntities; var savedLocations = dbInstance.SavedLocations.Where(s => s.UserId == request.UserId); var userCode = string.Empty; var userCodeEntity = dbInstance.UserCodes.SingleOrDefault(s => s.UserId == request.UserId); if (userCodeEntity != null) { userCode = userCodeEntity.Code; } var favoriteViewModel = new FavoritesViewModel { Username = request.UserName, UserCode = userCode }; var individualWeatherEntryViewModels = new List <IndividualWeatherEntryViewModel>(); foreach (var savedLocation in savedLocations) { individualWeatherEntryViewModels.Add(GetWeatherData(savedLocation.ZipCode, request.UserId, request.UserName)); } favoriteViewModel.WeatherEntriesViewModels = individualWeatherEntryViewModels; response.FavoritesViewModel = favoriteViewModel; } catch (Exception exception) { response.Success = false; response.Exception = exception; return(response); } response.Success = true; response.Message = string.Empty; return(response); }