예제 #1
0
        public IActionResult TenantExists([FromQuery] string tenant)
        {
            var platform = _platformManager.GetPlatformByTenant(tenant);

            if (platform == null)
            {
                return(Ok(new { Exists = false }));
            }
            else
            {
                return(Ok(new { Exists = true }));
            }
        }
예제 #2
0
        private Activity CreateActivity(ActivityType activityType, User user)
        {
            var tenant   = Util.Util.GetSubdomain(HttpContext.Request.Host.ToString());
            var platform = _platformManager.GetPlatformByTenant(tenant);

            return(CreateActivity(activityType, user, platform));
        }
예제 #3
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));
        }
예제 #4
0
        public IActionResult About()
        {
            string   tenant   = Util.Util.GetSubdomain(HttpContext.Request.Host.ToString());
            Platform platform = _platformManager.GetPlatformByTenant(tenant);

            if (platform == null)
            {
                return(NotFound());
            }
            ViewData["Message"] = "Over ons";
            return(View(platform));
        }
예제 #5
0
        public async Task <IActionResult> Post([FromForm] ProjectDTO projectDto)
        {
            if (ModelState.IsValid)
            {
                var phases = new List <Phase>();

                projectDto.Phases.ForEach(phaseDto =>
                {
                    var phase = new Phase()
                    {
                        Number      = phaseDto.Number,
                        Title       = phaseDto.Title,
                        Description = phaseDto.Description,
                    };

                    phases.Add(phase);
                });

                var fileName = Util.Util.GenerateDataStoreObjectName(projectDto.Logo.FileName);
                var imageObj = new Media()
                {
                    Name = fileName,
                    Url  = await _fileUploader.UploadFile(fileName, "project-logos", projectDto.Logo),
                };

                var platform = _platformManager.GetPlatformByTenant(projectDto.PlatformTenant);


                var project = new Project()
                {
                    Title              = projectDto.Title,
                    Goal               = projectDto.Goal,
                    Logo               = imageObj,
                    Phases             = phases,
                    Platform           = platform,
                    StartDate          = projectDto.StartDate,
                    EndDate            = projectDto.EndDate,
                    CurrentPhaseNumber = projectDto.CurrentPhase
                };

                if (projectDto.CurrentPhase > projectDto.Phases.Count)
                {
                    project.CurrentPhaseNumber = 0;
                }

                if (projectDto.Moderators != null)
                {
                    foreach (string moderatorUserName in projectDto.Moderators)
                    {
                        User mod = _userManager.FindByNameAsync(moderatorUserName).Result;
                        if (mod != null)
                        {
                            ProjectModerator moderator = new ProjectModerator()
                            {
                                Project = project,
                                User    = mod
                            };
                            project.Moderators.Add(moderator);
                        }
                    }
                }

                platform.Projects.Add(project);
                _projectManager.AddProject(project);
                _unitOfWorkManager.Save();
                return(Created("/project/details/" + project.ProjectId, new { id = project.ProjectId }));
            }

            return(StatusCode(400));
        }