public async Threading.Task <ProjectListDto> GetAllAsync() { var projectList = new ProjectListDto(); var projects = await _dbContext.Projects.ToListAsync(); // .Select(x => new ProjectDto // { // Id = x.Id, // Name = x.Name // }) // .OrderBy(x => x.Name).ToListAsync(); foreach (Project item in projects) { ProjectDto newProjectDto = new ProjectDto { Id = item.Id, Name = item.Name }; projectList.Projects.Add(newProjectDto); } projectList.RecordCount = projects.Count; return(projectList); }
public async Task <IActionResult> GetProjectsList(bool activeProjects) { var userOrgId = int.Parse(User.FindFirst("Organization").Value); var allProjects = await _context.Projects.Where(x => x.OrganizationId == userOrgId && x.Active == activeProjects).ToListAsync(); var listOfProjectDtos = new List <ProjectListDto>(); foreach (var project in allProjects) { var customerName = (await _context.Customers.SingleOrDefaultAsync(x => x.Id == project.CustomerId)).Name; var allUsers = await _context.Users .FromSql("SELECT * FROM AspNetUsers JOIN ProjectUsers ON ProjectUsers.UserId = AspNetUsers.Id WHERE ProjectUsers.ProjectId = {0}", project.Id) .ToListAsync(); var nameString = ""; foreach (var user in allUsers) { nameString = nameString + " " + user.FullName + ","; } var timeDifference = ((project.EstimatedTime - (int)project.TotalBudget)); var projectListDto = new ProjectListDto() { Id = project.Id, Name = project.Name, StartDate = project.StartDate, EndDate = project.EndDate, TotalBudget = project.TotalBudget, Priority = project.Priority, UsedTime = project.UsedTime, EstimatedTime = project.EstimatedTime, CustomerName = customerName, AllMembers = nameString.Remove(nameString.Length - 1), EstimatedTimeOver = timeDifference, }; if (await _context.TrelloBoards.AnyAsync(x => x.Id == project.TrelloBoardId)) { var alltrelloBoards = await _context.TrelloBoards.SingleOrDefaultAsync(x => x.Id == project.TrelloBoardId); projectListDto.TrelloUrl = alltrelloBoards.Url; } listOfProjectDtos.Add(projectListDto); } return(Ok(listOfProjectDtos)); }