public ActionResult All() { bool isUserAdmin = UserRoleRepository.IsUserInRole(User.Identity.GetUserId(), nameof(UserRolesEnum.Admin)); bool isUserProjectManager = UserRoleRepository.IsUserInRole(User.Identity.GetUserId(), nameof(UserRolesEnum.ProjectManager)); // shouldn't happen ever if (!isUserAdmin && !isUserProjectManager) { ModelState.AddModelError("", "Error - You don't have permission to view this page"); return(RedirectToAction(nameof(Index))); } IQueryable <Project> allProjects = ProjectRepository.GetAllProjects(); List <ProjectIndexViewModel> viewModels; if (allProjects.Any()) { viewModels = allProjects.ToList().Select(project => ProjectIndexViewModel.CreateNewViewModel(project)).ToList(); } else { viewModels = new List <ProjectIndexViewModel>(); } return(View(viewModels)); }
public ActionResult EditProject(ProjectIndexViewModel model) { if (!ModelState.IsValid) { return(View(model)); } try { var project = db.Projects.Find(model.Id); project.ProjeAdi = model.ProjeAdi; project.ProjeAciklama = model.ProjeAciklama; db.SaveChanges(); TempData["Message"] = "Güncelleme işlemi başarılı"; return(RedirectToAction("Index", "Project")); // TODO: Add update logic here } catch (Exception ex) { TempData["Model"] = new ErrorViewModel() { Text = $"Bir hata oluştu {ex.Message}", ActionName = "Index", ControllerName = "Admin", ErrorCode = 500 }; return(RedirectToAction("Error", "Home")); } }
public List <ProjectIndexViewModel> CreateIndexProjectViewModels() { List <Project> projects = _context.Projects .Include(p => p.Creator) .Include(p => p.Members) .Include(p => p.Tickets) .ToList(); var viewModels = new List <ProjectIndexViewModel>(); foreach (var project in projects) { var reloadProject = _context.Projects.Include(p => p.Creator) .Single(p => p.ProjectId == project.ProjectId); var viewModel = new ProjectIndexViewModel() { CreatedDate = project.CreatedDate, CreatorName = $"{reloadProject.Creator.FirstName} {reloadProject.Creator.LastName}", NumMembers = project.Members.Count, NumTickets = project.Tickets.Count, ProjectId = project.ProjectId, Title = project.Title, Description = project.Description }; viewModels.Add(viewModel); } return(viewModels); }
public IActionResult Index() { var model = new ProjectIndexViewModel(); model.AddProject.Name = TempData["ProjectName"]?.ToString(); model.ShowProjects = _projectData.ShowProjects(); return(View(model)); }
protected override async Task ExecuteAsync(CancellationToken stoppingToken) { ProjectIndexViewModel Index = await _mediator.Send(new GetProjectsQuery()); foreach (var item in Index.ProjectViewModels) { Console.WriteLine(item.Description + " " + item.NumberOfTasks); } }
/// <summary> /// Controller Action function provides view model for a new Project /// </summary> /// <returns>Project View Model</returns> public ActionResult Create() { var viewModel = new ProjectIndexViewModel { ProjectDetails = new ProjectInfo(), Sites = new List <SiteInfo>() }; return(View(viewModel)); }
public async Task <ProjectIndexViewModel> GetProjects() { //Console.WriteLine(_context.Projects); ProjectIndexViewModel projects = await _mediator.Send(new GetProjectsQuery()); //WebClient client = new WebClient(); //var jsonText = client.DownloadString("http://localhost/API/pmc"); //var json = JsonConvert.DeserializeObject<ProjectIndexViewModel>(jsonText); return(projects); }
public IActionResult Index() { var careers = projectService_.getAllcar(); ProjectIndexViewModel projectIndexViewModel = new ProjectIndexViewModel { CareerCollection = careers, title = "Career Index" }; return(View(projectIndexViewModel)); }
public IActionResult Index() { var projects = projectService_.getAll(); ProjectIndexViewModel projectIndexViewModel = new ProjectIndexViewModel { ProjectCollection = projects, title = "Project Index" }; return(View(projectIndexViewModel)); }
public IActionResult Index() { var interests = projectService_.getAllint(); ProjectIndexViewModel projectIndexViewModel = new ProjectIndexViewModel { InterestCollection = interests, title = "Interest Index" }; return(View(projectIndexViewModel)); }
public ActionResult Index() { var projects = projHelper.GetProjectsAvailableToUser(User); var availTickets = ticketsHelper.GetTicketsAvailableToUser(User); var viewModel = new ProjectIndexViewModel() { AvailableProjects = projects, Users = db.Users.ToList(), AvailableTickets = availTickets }; return(View(viewModel)); }
public IActionResult Index() { var projects = _projectService.GetAll().Select(x => new ProjectDetailViewModel { Id = x.Id, ProjectName = x.ProjectName }); var model = new ProjectIndexViewModel { Projects = projects }; return(View(model)); }
// GET: Project public ActionResult Index() { IQueryable <Project> userProjects = ProjectRepository.GetUserProjects(User.Identity.GetUserId()); List <ProjectIndexViewModel> viewModels; if (userProjects.Any()) { viewModels = userProjects.ToList().Select(project => ProjectIndexViewModel.CreateNewViewModel(project)).ToList(); } else { viewModels = new List <ProjectIndexViewModel>(); } return(View(viewModels)); }
public ActionResult Index() { if (this.ModelState.IsValid) { var projects = this.projects.AllApprovedProjects().To <AllProjectsViewModel>().ToList(); var viewModel = new ProjectIndexViewModel { Projects = projects }; return(this.View(viewModel)); } return(this.View()); }
public ProjectIndexViewModel BuildProjectIndexViewModel(int userId, ProjectsFilterType?projectsFilter) { var projects = _dbContext.Projects.Where(project => project.CreatorID == userId); if (projectsFilter.HasValue) { projects = projects.Where(ProjectsFilterTypeResolver.ResolveFilter(projectsFilter.Value)).AsQueryable(); } var items = Mapper.Map <IList <ProjectIndexItemViewModel> >(projects); var model = new ProjectIndexViewModel { Items = items }; return(model); }
// GET: Project/Edit/5 public ActionResult EditProject(int id) { var project = db.Projects.Find(id); if (project == null) { return(RedirectToAction("Index")); } var model = new ProjectIndexViewModel() { Id = project.Id, ProjeAdi = project.ProjeAdi, ProjeAciklama = project.ProjeAciklama, EklenmeTarihi = project.EklenmeTarihi }; return(View(model)); }
public async Task <IActionResult> Index() { var httpClient = await this.projectHttpClient.GetClient(); var response = await httpClient.GetAsync("api/projects").ConfigureAwait(false); if (response.IsSuccessStatusCode) { var projectAsString = await response.Content.ReadAsStringAsync().ConfigureAwait(false); var projectIndexViewModel = new ProjectIndexViewModel( JsonConvert.DeserializeObject <IList <Project> >(projectAsString).ToList()); return(View(projectIndexViewModel)); } throw new Exception($"A problem happened while calling the API: {response.ReasonPhrase}"); }
public bool StartMonitoring_ProjectIndexViewModel(ProjectIndexViewModel model) { //Find the user's Id string userId = HttpContext.Current.GetOwinContext().Authentication.User.Identity.GetUserId(); //Add this user as watching for Project Adds Groups.Add(Context.ConnectionId, LiveUpdateHelper.GroupName(userId)); //Add this user as watching updates on each project foreach (var project in model.Projects) { Groups.Add(Context.ConnectionId, LiveUpdateHelper.GroupName(ViewModelDataType.Project, ActionType.Index, project.Id)); } //We can't check if a project should have been added or access revoked/deleted because we don't know the user //But we can check if it has changed Task.Factory.StartNew(() => { //Check if the model has changed, call update if it has using (var db = new ApplicationDbContext()) { //Check features in list foreach (var oldProject in model.Projects) { var project = db.Projects.Find(oldProject.Id); if (project == null) { //Data has been removed! continue; } var newProjectItem = new ProjectItemViewModel(project); if (!oldProject.PublicInstancePropertiesEqual(newProjectItem)) { //Data has changed LiveUpdateSingleton.Instance.EntityUpdated(new projectList() { new Tuple <EntityState, Project>(EntityState.Modified, project) }); } } } }); return(true); }
public async Task <IActionResult> Index(int pageNumber = 1, int pageSize = 10) { int excludeRecords = (pageSize * pageNumber) - pageSize; var model = new ProjectIndexViewModel(); var user = await GetCurrentUserAsync(); model.ActiveUserId = user.Id; var projects = _context.Projects .Include(u => u.Users) .Include(r => r.ProjectRequirements) .ThenInclude(ProjectRequirement => ProjectRequirement.Tasks).ToList(); List <ProjectViewModel> projectList = _mapper.Map <List <Project>, List <ProjectViewModel> >(projects); model.Projects = projectList; return(View(model)); }
// GET: Projects public async Task <ActionResult> Index() { var currentUser = await _userManager.FindByIdAsync(User.Identity.GetUserId()); if (currentUser == null) { return(RedirectToAction("LogOff", "Account")); //If the user is here without a found user then it must be an old cookie } //Get accessible projects var myProjects = currentUser.Projects.ToList(); var teamProjects = currentUser.Teams.Select(member => member.Team.Projects).SelectMany(collection => collection).Select(project => project.Project).ToList(); //Combine the two lists var combined = myProjects.Concat(teamProjects).Distinct(); //Create model from projects var model = new ProjectIndexViewModel(combined.ToList()); return(View(model)); }
public IActionResult Add(ProjectIndexViewModel model) { if (ModelState.IsValid) { try { _projectData.AddProject(model); } catch (ProjectAlreadyExistsException) { TempData["Error"] = "This project already exists."; TempData["ProjectName"] = model.AddProject.Name; return(RedirectToAction(nameof(Index))); } TempData["Success"] = "This project was successfully created."; return(RedirectToAction(nameof(Index))); } else { return(View(model)); } }
public void AddProject(ProjectIndexViewModel model) { if (model == null) { throw new ArgumentNullException(nameof(model)); } if (model.AddProject == null) { throw new ArgumentNullException(nameof(model.AddProject)); } if (model.AddProject.Name == null) { throw new ArgumentNullException(nameof(model.AddProject.Name)); } if (model.AddProject.Name == "") { throw new ArgumentException($"{nameof(model.AddProject.Name)} must not be empty."); } using (var db = new postgresContext()) { var userId = _userData.GetID(); if (db.Project.Any(x => (x.Name == model.AddProject.Name) && (x.UserId == userId))) { throw new ProjectAlreadyExistsException(); } db.Project.Add(new Project() { Name = model.AddProject.Name, UserId = userId }); db.SaveChanges(); } }
public static HomeIndexViewModel CreateNewViewModel( ApplicationUser applicationUser, ApplicationDbContext dbContext, int latestProjectIntakeLimit = 3, int latestCreatedTicketIntakeLimit = 3, int latestAssignedTicketIntakeLimit = 3) { if (applicationUser == null) { throw new ArgumentNullException(nameof(applicationUser)); } List <IdentityRole> roles = new UserRoleRepository(dbContext).GetUserRoles(applicationUser.Id); ProjectRepository projectRepository = new ProjectRepository(dbContext); List <ProjectIndexViewModel> latestProjects = projectRepository .GetUserProjects(applicationUser.Id)? .ToList() .OrderByDescending(project => project?.DateUpdated ?? project.DateCreated) .Take(latestProjectIntakeLimit) .Select(project => ProjectIndexViewModel.CreateNewViewModel(project)) .ToList() ?? new List <ProjectIndexViewModel>(); int numberOfCreatedTickets = 0; int numberOfAssignedTickets = 0; List <TicketIndexViewModel> latestCreatedTickets; List <TicketIndexViewModel> latestAssignedTickets; if (roles.Any(role => role.Name == nameof(UserRolesEnum.Submitter))) { //! get created tickets (Submitter) numberOfCreatedTickets = applicationUser.CreatedTickets?.Count ?? 0; latestCreatedTickets = applicationUser.CreatedTickets? .OrderByDescending(ticket => ticket?.DateUpdated ?? ticket.DateCreated) .Take(latestCreatedTicketIntakeLimit) .Select(ticket => TicketIndexViewModel.CreateNewViewModel(applicationUser.Id, ticket)) .ToList() ?? new List <TicketIndexViewModel>(); } else { //! if not (Submitter) latestCreatedTickets = new List <TicketIndexViewModel>(); } if (roles.Any(role => role.Name == nameof(UserRolesEnum.Developer))) { //! get assigned tickets (Developer) numberOfAssignedTickets = applicationUser.AssignedTickets?.Count ?? 0; latestAssignedTickets = applicationUser.AssignedTickets? .OrderByDescending(ticket => ticket?.DateUpdated ?? ticket.DateCreated) .Take(latestAssignedTicketIntakeLimit) .Select(ticket => TicketIndexViewModel.CreateNewViewModel(applicationUser.Id, ticket)) .ToList() ?? new List <TicketIndexViewModel>(); } else { //! if not (Developer) latestAssignedTickets = new List <TicketIndexViewModel>(); } TicketRepository ticketRepository = new TicketRepository(dbContext); try { return(new HomeIndexViewModel() { UserId = string.IsNullOrWhiteSpace(applicationUser.Id) ? throw new ArgumentNullException() : applicationUser.Id, DisplayName = string.IsNullOrWhiteSpace(applicationUser.DisplayName) ? throw new ArgumentNullException() : applicationUser.DisplayName, Email = string.IsNullOrWhiteSpace(applicationUser.Email) ? throw new ArgumentNullException() : applicationUser.Email, TotalProjectCount = projectRepository.GetUserProjects(applicationUser.Id)?.Count() ?? 0, LatestProjects = latestProjects?.Any() ?? false ? latestProjects : new List <ProjectIndexViewModel>(), Roles = (roles?.Any() ?? false) ? roles : new List <IdentityRole>(), TotalCreatedTicketCount = numberOfCreatedTickets, TotalAssignedTicketCount = numberOfAssignedTickets, LatestCreatedTickets = latestCreatedTickets, LatestAssignedTickets = latestAssignedTickets, AllProjectCount = projectRepository.GetAllProjects().Count(), //! NOTE: This depends on the table primary keys matching with the enum int value AllOpenTicketsCount = ticketRepository.GetAllTickets().Count(ticket => ticket.StatusId == (int)TicketStatusesEnum.Open), AllResovledTicketsCount = ticketRepository.GetAllTickets().Count(ticket => ticket.StatusId == (int)TicketStatusesEnum.Resolved), AllRejectedTicketsCount = ticketRepository.GetAllTickets().Count(ticket => ticket.StatusId == (int)TicketStatusesEnum.Rejected), }); }
/// <summary> /// Controller Action function routed to Project/Index/id that queries corresponding Project, /// and associated Sites and Documents for return to client View as view model. /// </summary> /// <param name="id">Project's projectId</param> /// <returns>ProjectIndexViewModel object</returns> public ActionResult Index(int id) { //build up viewmodel with 2 queries. Could be done with 1 query but not important for now. //get project details var projectInfo = (from p in db.Projects where p.ProjectId == id select new ProjectInfo { Name = p.Name, Description = p.Description, RefNumber = p.ProjectCode, Id = p.ProjectId, ImagePath = p.ImagePath, DocumentContainerId = p.DocumentContainerId }).FirstOrDefault(); //get sites list var sites = (from dbSite in db.Sites where dbSite.ProjectId == id select new SiteInfo { Name = dbSite.Name, Id = dbSite.SiteId, Description = dbSite.Description, Address = dbSite.Address, ImagePath = dbSite.ImagePath, ProjectId = dbSite.ProjectId, NotificationNumber = 0 }).OrderBy(x => x.Name).ToList(); //Count how many items are high risk designated foreach (var site in sites) { var audits = db.Audits.Where(x => x.SiteId == site.Id).ToList(); site.NotificationNumber = audits.Sum(x => x.GetCountOfHighRisk()); } //Query for and build list of documents List <SharedVM.DocumentInfo> documentList = new List <SharedVM.DocumentInfo>(); if (projectInfo.DocumentContainerId != null) { documentList = db.DocumentInfoes .Where(di => di.DocumentContainerId == projectInfo.DocumentContainerId) .Select(di => new SharedVM.DocumentInfo { DocumentInfoId = di.DocumentInfoId, DocumentVersions = di.DocumentVersions .Select(dv => new SharedVM.DocumentVersion { DocumentVersionId = dv.DocumentVersionId, Name = dv.Name, VersionNumber = dv.VersionNumber, Description = dv.Description, Url = dv.Url, UploadDate = dv.UploadDate, UploadedBy = dv.UploadedBy }) .OrderByDescending(dv => dv.DocumentVersionId).ToList() }).ToList(); } //build viewmodel and send to view var viewModel = new ProjectIndexViewModel { ProjectDetails = projectInfo, Sites = sites, Documents = documentList }; return(View(viewModel)); }
public ActionResult Index() { if (this.ModelState.IsValid) { var projects = this.projects.AllApprovedProjects().To<AllProjectsViewModel>().ToList(); var viewModel = new ProjectIndexViewModel { Projects = projects }; return this.View(viewModel); } return this.View(); }