Exemple #1
0
        public async Task CreateTeam(TeamViewModel teamVieweDto, int roomId)    //Change => Enter Team{Name , Description}
        {
            try
            {
                var userId = userService.GetUserId();


                var Team = mapper.Map <TeamViewModel, Team>(teamVieweDto);

                var newTeam = await teamService.AddTeam(Team, roomId, userId, 0);

                if (newTeam != null)
                {
                    var JoinChatOfTeamByDefault = await teamChatService.GetTeamChatOfTeam(newTeam.Id);

                    if (JoinChatOfTeamByDefault != null)
                    {
                        //await Groups.AddToGroupAsync(Context.ConnectionId, JoinChatOfTeamByDefault.ChatName);
                        await Clients.Caller.SendAsync("ReceiveMessageOnAdd", $" Chat Group Called {JoinChatOfTeamByDefault} Created");
                    }

                    var teamViewModel = mapper.Map <Team, TeamViewModel>(newTeam);

                    await Clients.All.SendAsync("addTeam", teamViewModel);  //Change soon Tell all Clients on Hub That a New Team Added
                }
            }
            catch (Exception ex)
            {
                await Clients.Caller.SendAsync("onError", "Couldn't create team: " + ex.Message);
            }
        }
        // public async Task<IActionResult> AddTeam(Team team, int roomId, int parentTeamId)
        public async Task <IActionResult> AddTeam(int roomId, int parentTeamId, TeamDto teamDto)
        {
            try
            {
                var userId = userService.GetUserId();
                // var newTeam = await teamService.AddTeam(team, roomId, userId,parentTeamId);
                var user = await userService.getUserById(userId);

                var team    = mapper.Map <Team>(teamDto);
                var newTeam = await teamService.AddTeam(team, roomId, userId, parentTeamId);

                var JoinChatOfTeam = await teamChatService.GetTeamChatOfTeam(newTeam.Id);

                //   await chatHub.Clients.Group(JoinChatOfTeam.ChatName).SendAsync("ReceiveMessageOnJoin", $"User: {user.UserName} Join Group of {JoinChatOfTeam} "); //Not Show to New User That Join  *Must Saved  inHistory
                //   await chatHub.Groups.AddToGroupAsync(chatHub.Clients.User(userId), JoinChatOfTeam.ChatName);  //add to Group to tell Clients on Group new User Come
                var parentTeam = await teamService.GetTeamOnlyById(parentTeamId);

                // var notification = notificationService.CreateNewNotificaition(new Notification
                // {
                //     Content = $"the leader of team {parentTeam.Name} accept your request to creatث a sub team from this team",
                //     UserId = userId
                // });

                // await notificationHub.Clients.User(userId).SendAsync("recievenotification",notification);
                return(Ok());
            }
            catch (Exception e)
            {
                return(BadRequest(e.Message));
            }
        }