Exemple #1
0
        /// <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);
            }
        }