/// <summary> /// Helper function for laod() function /// </summary> /// <param name="storage">Input file</param> /// <param name="t">type fo file</param> /// <returns>true if continue</returns> private static List <SQLServerLogEvent> loadFile(ILogStorage storage, LogType t) { switch (t) { case LogType.Csv: Console.WriteLine("Has header? t/f"); string ret = Console.ReadLine(); Console.WriteLine("Column delimiter sign: "); char columnDelimiter = Console.ReadLine()[0]; Console.WriteLine("Text qualifier sign: "); char qualifier = Console.ReadLine()[0]; bool header = (ret == "t") ? true: false; CsvLogImporter <SQLServerLogEvent> csvImp = new CsvLogImporter <SQLServerLogEvent> (storage, new string[] { "EventTime", "ServerName", "ErrorNumber", "ErrorSeverity", "DatabaseName", "ErrorMessage" }, header, columnDelimiter, qualifier); return(csvImp.Import()); case LogType.Json: JsonLogImporter <SQLServerLogEvent> jsonImp = new JsonLogImporter <SQLServerLogEvent>(storage); return(jsonImp.Import()); case LogType.Sql: SQLServerFormatLogImporter sqlImp = new SQLServerFormatLogImporter(storage); return(sqlImp.Import()); default: break; } return(null); }
public async Task UploadLog(IMatFileUploadEntry[] files) { file = files.FirstOrDefault(); if (file is null) { return; } if (file.Type != "text/csv" && file.Type != "application/vnd.ms-excel") { await MatDialogService.AlertAsync("Log has to be in csv"); return; } try { _stream = new MemoryStream(); await file.WriteToStreamAsync(_stream); _stream.Seek(0, SeekOrigin.Begin); GetUploadContent(); _stream.Seek(0, SeekOrigin.Begin); _imported = CsvLogImporter.LoadLog(_stream); headersDict = _imported.Headers.ToDictionary(x => x, HeaderTypeSet); uploadMode = true; } catch { await MatDialogService.AlertAsync( "There was an error while uploading file. Check that file is .csv format"); } finally { await InvokeAsync(StateHasChanged); } }