public IActionResult GroupNewChat(string id, int groupId)
        {
            Group   group  = repository.Groups.FirstOrDefault(g => g.GroupId == groupId);
            AppUser user   = userManager.Users.FirstOrDefault(u => u.Id == id);
            int     chatId = group.GroupChatId;

            if (group.GroupChatId == 0)
            {
                GroupChat groupChat = new GroupChat
                {
                    Title         = group.Name,
                    Status        = group.Status,
                    CreatedBy     = user.Id,
                    ChatPhotoPath = "Groups/" + group.GroupPhotoPath
                };
                repository.EditGroupChat(groupChat);

                chatId = groupChat.ChatId;

                //add users to chat
                repository.GroupAddUserToChat(chatId, groupId);

                group.GroupChatId = groupChat.ChatId;
                repository.SaveGroup(group);

                //new msg
                GroupChat chat = repository.GroupChats
                                 .FirstOrDefault(g => g.ChatId == group.GroupChatId);

                string userName = (user.FirstName == null && user.LastName == null) ?
                                  user.UserName : user.FirstName + user.LastName;
                string           content = $"{userName} created a group chat";
                GroupChatMessage newMsg  = new GroupChatMessage
                {
                    GroupChatId    = chatId,
                    UserId         = user.Id,
                    MessageContent = content,
                    MessageType    = "SystemMsg"
                };

                repository.NewGroupChatMessage(newMsg, chat);
            }

            return(RedirectToAction("GroupChat", "Chat", new { id, groupChatId = chatId }));
        }