示例#1
0
        private string CalculateFullFileName(
            string filename,
            IBrowserFileAdapter.FileType fileType)
        {
            var mimeType  = _supportedMimeTypes[(int)fileType];
            var extension = mimeType.Split("/").Last();

            return($"{filename}.{extension}");
        }
示例#2
0
        private string PerformConversionTo(IBrowserFileAdapter.FileType type)
        {
            if (string.IsNullOrEmpty(SourceText))
            {
                return(string.Empty);
            }

            ITextConvertStrategy converter = (type == IBrowserFileAdapter.FileType.CSV) ?
                                             new JsonCsvConverter() :
                                             new CsvJsonConverter();

            return(converter.Convert(SourceText));
        }
示例#3
0
        public async Task SaveTextAsAsync(
            IJSRuntime jsRuntime,
            string filename,
            IBrowserFileAdapter.FileType fileType,
            string data)
        {
            _ = jsRuntime ?? throw new ArgumentNullException(nameof(jsRuntime));
            if (string.IsNullOrEmpty(filename))
            {
                throw new ArgumentNullException(nameof(filename));
            }
            if (string.IsNullOrEmpty(data))
            {
                throw new ArgumentNullException(nameof(data));
            }

            var buffer = Encoding.UTF8.GetBytes(data);
            await jsRuntime.InvokeVoidAsync(
                _jsSaveAsFileMethod,
                CalculateFullFileName(filename, fileType),
                Convert.ToBase64String(buffer));
        }