Beispiel #1
0
        public override void OnPageHandlerExecuting(PageHandlerExecutingContext context)
        {
            if (User != null && User.Identity.IsAuthenticated)
            {
                var homeService = new HomeService(dbContext);
                GetHomesOfUserRequest request = new GetHomesOfUserRequest {
                    RequestUserId = UserId
                };
                var    homesResponse = homeService.GetHomesOfUser(request);
                string homePath      = "/Home/Create";
                if (homesResponse.Homes.Count == 0 && context.ActionDescriptor.ViewEnginePath != homePath)
                {
                    context.Result = RedirectToPage(homePath);
                }
                else
                {
                    if (!context.HttpContext.Session.Keys.Contains(SessionKeys.ACTIVE_HOME_ID))
                    {
                        //TODO: Find currently active home and write to session

                        SelectedHomeId = homesResponse.Homes.FirstOrDefault()?.Id ?? 0;

                        if (SelectedHomeId != 0)
                        {
                            context.HttpContext.Session.SetInt32(SessionKeys.ACTIVE_HOME_ID, SelectedHomeId);
                        }
                    }
                    else
                    {
                        SelectedHomeId = HttpContext.Session.GetInt32(SessionKeys.ACTIVE_HOME_ID) ?? 0;
                    }
                }
            }
            base.OnPageHandlerExecuting(context);
        }
Beispiel #2
0
        public GetHomesOfUserResponse GetHomesOfUser(GetHomesOfUserRequest request)
        {
            GetHomesOfUserResponse response = new GetHomesOfUserResponse();
            var homes = GetHomesOfUserInternal(request.RequestUserId);
            List <HomeEntity> homeEntities = new List <HomeEntity>();

            foreach (var home in homes)
            {
                homeEntities.Add(ConvertDboToEntity(home));
            }
            response.Homes = homeEntities;
            return(response);
        }
        public IActionResult OnGet()
        {
            var request = new GetHomesOfUserRequest()
            {
                RequestUserId = UserId
            };
            var homesResponse = homeService.GetHomesOfUser(request);

            if (homesResponse.IsSuccessful)
            {
                Homes = homesResponse.Homes;
            }
            return(Page());
        }
Beispiel #4
0
        public void Home_GetHomesOfUser_NotFound()
        {
            // arrange
            var          context     = GetContext();
            IHomeService homeService = new HomeService(context);

            context.HomeUsers.RemoveRange(context.HomeUsers.Where(q => q.UserId == userIds[0]));
            context.SaveChanges();

            // act
            var request = new GetHomesOfUserRequest()
            {
                RequestUserId = userIds[0]
            };
            var actual = homeService.GetHomesOfUser(request);

            // assert
            Assert.Empty(actual.Homes);
        }
Beispiel #5
0
        public void Home_GetHomesOfUser_Ok()
        {
            // arrange
            var          context     = GetContext();
            IHomeService homeService = new HomeService(context);
            var          homeId      = context.Homes.Add(new Persistence.Dbo.Home()
            {
                Name        = "test home 1",
                Description = "test desc 1",
                IsActive    = true
            }).Entity.Id;

            context.HomeUsers.Add(new Persistence.Dbo.HomeUser()
            {
                HomeId   = homeId,
                UserId   = userIds[0],
                Role     = "owner",
                IsActive = true
            });
            context.SaveChanges();

            // act
            var expected = context.Homes.Join(context.HomeUsers,
                                              home => home.Id,
                                              homeUser => homeUser.HomeId,
                                              (home, homeUser) => new { Home = home, HomeUser = homeUser })
                           .Where(homeAndUser => homeAndUser.HomeUser.UserId == userIds[0]);
            var request = new GetHomesOfUserRequest()
            {
                RequestUserId = userIds[0]
            };
            var actual = homeService.GetHomesOfUser(request);

            // assert
            Assert.Equal(expected.Count(), actual.Homes.Count());
        }