This commit is contained in:
Ruidy Nemausat 2020-02-09 12:23:48 +01:00
parent 4710f0a551
commit 4a711aa8ef
2 changed files with 17 additions and 8 deletions

View file

@ -25,14 +25,19 @@ namespace TicketManager.Controllers
[HttpGet] [HttpGet]
public async Task<ActionResult<IEnumerable<Project>>> GetProjects() public async Task<ActionResult<IEnumerable<Project>>> GetProjects()
{ {
return await _context.Projects.ToListAsync(); return await _context.Projects
.Include(p => p.Assignments)
.ThenInclude(a => a.User)
.ToListAsync();
} }
// GET: api/Projects/5 // GET: api/Projects/5
[HttpGet("{id}")] [HttpGet("{id}")]
public async Task<ActionResult<Project>> GetProject(int id) public async Task<ActionResult<Project>> GetProject(int id)
{ {
var project = await _context.Projects.FindAsync(id); var project = await _context.Projects
.Include(p => p.Assignments)
.FirstOrDefaultAsync(p => p.Id == id);
if (project == null) if (project == null)
{ return NotFound(); } { return NotFound(); }
@ -102,10 +107,10 @@ namespace TicketManager.Controllers
if (project == null) if (project == null)
{ return NotFound(); } { return NotFound(); }
List<Assignment> assignments = project.AddMembers(usersToAdd); project.AddMembers(usersToAdd);
foreach (var assignment in assignments) // foreach (var assignment in assignments)
{ _context.Assignments.Add(assignment); } // { _context.Assignments.Add(assignment); }
await _context.SaveChangesAsync(); await _context.SaveChangesAsync();
// try // try

View file

@ -60,11 +60,15 @@ namespace TicketManager.Models
{ {
return this.Assignments.Select(a => a.User).ToList(); return this.Assignments.Select(a => a.User).ToList();
} }
public List<Assignment> AddMembers(List<User> usersToAdd) public void AddMembers(List<User> usersToAdd)
{ {
var projectUsers = new List<Guid>
(this.Assignments.Select(a => a.UserId));
foreach (var user in usersToAdd) foreach (var user in usersToAdd)
{ {
Assignment newAssign = new Assignment() Assignment newAssign = new Assignment
{ {
Project = this, Project = this,
ProjectId = this.Id, ProjectId = this.Id,
@ -73,7 +77,7 @@ namespace TicketManager.Models
}; };
this.Assignments.Add(newAssign); this.Assignments.Add(newAssign);
} }
return this.Assignments; // return this.Assignments;
} }
public void RemoveMembers(List<User> membersToRemove) public void RemoveMembers(List<User> membersToRemove)
{ {