public async Task ShareFileToChannelAsync(int channelId, int fileId, int userId, int workspaceId)
        {
            if (!(await EligibleForTheFileAsync(fileId, userId, workspaceId)))
            {
                throw new ArgumentException($"File access required.");
            }

            var message = new ChannelMessage(channelId, string.Empty, userId, workspaceId, true);
            var file    = await _context.Files.SingleAsync(f => f.Id == fileId);

            message.AddMessageFileAttachment(file);

            await PostMessageToChannelCommonAsync(message);
        }
        public async Task PostFileMessageToChannelAsync(IList <IFormFile> files, int channelId, int userId, int workspaceId)
        {
            if (!files.Any())
            {
                throw new ArgumentException($"File list is empty.");
            }

            var savedFiles = await UploadAndSaveFilesForMessageAsync(files, userId, workspaceId);

            var message = new ChannelMessage(channelId, string.Empty, userId, workspaceId, true);

            foreach (var file in savedFiles)
            {
                message.AddMessageFileAttachment(file);
            }

            await PostMessageToChannelCommonAsync(message);
        }