public TeamDetailModel RemovePost(TeamDetailModel teamModel, PostDetailModel postModel) { using (var dbContext = _dbContextFactory.CreateTeamChatDbContext()) { var teamEntity = dbContext.Teams .Include(p => p.Posts)? .ThenInclude(c => c.Comments) .ThenInclude(a => a.Author) .Include(m => m.Members) .ThenInclude(u => u.User) .First(t => t.Id == teamModel.Id); var postEntity = dbContext.Posts .Include(a => a.Author) .Include(c => c.Comments) .ThenInclude(a => a.Author) .First(p => p.Id == postModel.Id); teamEntity.Posts.Remove(postEntity); dbContext.SaveChanges(); return(TeamMapper.MapToDetailModel(teamEntity)); } }
public TeamDetailModel Create(TeamDetailModel detailModel) { using (var dbContext = _dbContextFactory.CreateTeamChatDbContext()) { var team = TeamMapper.MapToEntity(detailModel); dbContext.Teams.Update(team); dbContext.SaveChanges(); return(TeamMapper.MapToDetailModel(team)); } }
public TeamDetailModel GetById(Guid id) { using (var dbContext = _dbContextFactory.CreateTeamChatDbContext()) { return(TeamMapper.MapToDetailModel(dbContext.Teams .Include(tu => tu.Members) .ThenInclude(u => u.User) .Include(p => p.Posts) .ThenInclude(c => c.Comments) .ThenInclude(a => a.Author) .First(t => t.Id == id))); } }
public TeamDetailModel UpdateName(Guid teamId, string newTeamName) { using (var dbContext = _dbContextFactory.CreateTeamChatDbContext()) { var teamEntity = dbContext.Teams .Include(tu => tu.Members) .ThenInclude(u => u.User) .Include(p => p.Posts) .ThenInclude(c => c.Comments) .First(t => t.Id == teamId); teamEntity.Name = newTeamName; dbContext.Teams.Update(teamEntity); dbContext.SaveChanges(); return(TeamMapper.MapToDetailModel(teamEntity)); } }
public TeamDetailModel AddMember(TeamDetailModel teamModel, UserDetailModel userModel) { using (var dbContext = _dbContextFactory.CreateTeamChatDbContext()) { var userEntity = dbContext.Users .Include(tu => tu.Teams) .ThenInclude(u => u.User) .Include(tu => tu.Teams) .ThenInclude(t => t.Team) .Include(u => u.Activities) .First(u => u.Id == userModel.Id); var teamEntity = dbContext.Teams .Include(tu => tu.Members) .ThenInclude(t => t.Team) .Include(tu => tu.Members) .ThenInclude(u => u.User) .Include(t => t.Posts) .ThenInclude(c => c.Comments) .First(t => t.Id == teamModel.Id); var junction = new TeamUser { Team = teamEntity, TeamId = teamEntity.Id, User = userEntity, UserId = userEntity.Id }; userEntity.Teams.Add(junction); teamEntity.Members.Add(junction); dbContext.TeamUsers.Add(junction); dbContext.Users.Update(userEntity); dbContext.Teams.Update(teamEntity); dbContext.SaveChanges(); return(TeamMapper.MapToDetailModel(teamEntity)); } }