コード例 #1
0
        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"));
        }
コード例 #2
0
        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);
        }