Exemplo n.º 1
0
        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));
            }
        }
Exemplo n.º 2
0
 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));
     }
 }
Exemplo n.º 3
0
 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)));
     }
 }
Exemplo n.º 4
0
        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));
            }
        }
Exemplo n.º 5
0
        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));
            }
        }