/// <summary> /// Add crewleader to crew with specific ID /// </summary> /// <param int="crewId"></param> /// <param string="userId"></param> public async Task AddCrewLeaderAsync(int crewId, string userId) { if (userId == null || crewId <= 0) { throw new HttpException(HttpStatusCode.BadRequest, "Mangler ID på arbeidslag eller bruker"); } var existingCrewUser = await _dbContext.CrewUsers .Where(a => a.CrewId == crewId && a.ApplicationUserId == userId) .SingleOrDefaultAsync(); if (existingCrewUser != null) { existingCrewUser.IsLeader = true; } else { var crewUser = new CrewUser { ApplicationUserId = userId, IsLeader = true, CrewId = crewId }; _dbContext.CrewUsers.Add(crewUser); } await _dbContext.SaveChangesAsync(); }
/// <summary> /// Add crewmember to crew with specific ID /// </summary> /// <param name="crewId"></param> /// <param name="userId"></param> public async Task AddCrewMemberAsync(int crewId, string userId) { if (userId == null || crewId <= 0) { throw new HttpException(HttpStatusCode.BadRequest, "Mangler ID på arbeidslag eller bruker"); } var existingCrewUser = await _dbContext.CrewUsers .Where(a => a.CrewId == crewId && a.ApplicationUserId == userId) .SingleOrDefaultAsync(); if (existingCrewUser != null) { throw new HttpException(HttpStatusCode.Conflict, $"Bruker: {existingCrewUser.ApplicationUser.FirstName} er allerede lagt til i arbeidslaget"); } var crewUser = new CrewUser { ApplicationUserId = userId, IsLeader = false, CrewId = crewId }; _dbContext.CrewUsers.Add(crewUser); await _dbContext.SaveChangesAsync(); }
public async Task ShouldAddCrewMember() { await CreateCrew(_crewName2); Crew crew2 = _dbContext.Crews.Find(2); CrewUser crewUser = _dbContext.CrewUsers.Find(1); CrewService crewService = new CrewService(_dbContext, _mainEventProvider); CrewController crewController = new CrewController(crewService); ActionResult <List <CrewMembersListVm> > result = await crewController.GetCrewMembersAsync(crew2.Id); List <CrewMembersListVm> returnedCrewMembers = (List <CrewMembersListVm>)((OkObjectResult)result.Result).Value; Assert.AreEqual(0, returnedCrewMembers.Count); await crewController.AddCrewMemberAsync(crew2.Id, _createdUser1.Entity.Id); result = await crewController.GetCrewMembersAsync(crew2.Id); returnedCrewMembers = (List <CrewMembersListVm>)((OkObjectResult)result.Result).Value; Assert.AreEqual(1, returnedCrewMembers.Count); Assert.AreEqual(_createdUser1.Entity.Id, returnedCrewMembers[0].Id); }