Exemplo n.º 1
0
        //TODO usermanger meegeven in index of in constructor?! Refactor Jeroen please, vraag aan Sam voor refactor
        public IActionResult Index(string tenant, [FromServices] IIdeationManager ideationManager,
                                   [FromServices] UserManager <User> userManager, [FromServices] IIoTManager ioTManager)
        {
            var platform = _platformManager.GetPlatformByTenant(tenant);

            if (platform == null)
            {
                return(RedirectToAction("NotFound", "Home"));
            }

            var activities         = _activityManager.GetActivityFeed(platform);
            var activityViewModels = new List <ActivityViewModel>();

            foreach (var activity in activities.Reverse())
            {
                var vm = new ActivityViewModel(activity);
                activityViewModels.Add(vm);
            }

            ViewBag.Activities         = activityViewModels;
            ViewBag.IdeationReplyCount = ideationManager.GetIdeationReplyCount(platform.PlatformId);
            ViewBag.CommentCount       = ideationManager.GetCommentCount(platform.PlatformId);
            ViewBag.VoteCount          = ideationManager.GetTotalVoteCount(platform.PlatformId);
            ViewBag.IoTCount           = ioTManager.GetIotCountByPlatform(platform.PlatformId);

            ViewBag.ProjectVoteCount          = new List <int>();
            ViewBag.ProjectCommentCount       = new List <int>();
            ViewBag.ProjectIdeationReplyCount = new List <int>();

            var users = userManager.Users;
            var count = 0;

            foreach (var userCount in users)
            {
                if (userManager.GetClaimsAsync(userCount).Result.SingleOrDefault(c => c.Type == _subdomain) != null)
                {
                    count++;
                }
            }
            ViewBag.UserCount = count;

            User user = userManager.GetUserAsync(User).Result;

            if (user != null)
            {
                ViewBag.IsAdmin = userManager.IsUserAdminOrAbove(user, tenant);
            }
            else
            {
                ViewBag.IsAdmin = false;
            }

            return(View(platform));
        }