public void Has_Correct_Files()
        {
            LogFileService logFileService = new LogFileService();

            var logItems = logFileService.GetDateSortedLogFileDataFromFileNames(allDummyLogFileNames).ToArray();

            foreach (var logItem in logItems)
            {
                TestContext.WriteLine(logItem);
            }

            Assert.That(logItems.Count, Is.EqualTo(8));

            Assert.That(logItems[0].Date.Date == DateTime.Today);
            Assert.That(Path.GetFileName(logItems[0].Path) == "UmbracoTraceLog.txt");
            Assert.That(logItems[0].MachineName == null);

            Assert.That(logItems[1].Date.Date == DateTime.Parse("2016-01-16"));
            Assert.That(Path.GetFileName(logItems[1].Path) == "UmbracoTraceLog.Machine.Name.txt.2016-01-16");
            Assert.That(logItems[1].MachineName == "Machine.Name");

            Assert.That(logItems[6].Date.Date == DateTime.Parse("2015-09-05"));
            Assert.That(Path.GetFileName(logItems[6].Path) == "UmbracoTraceLog.txt.2015-09-05");
            Assert.That(logItems[6].MachineName == null);

            Assert.That(logItems[7].Date.Date == DateTime.Parse("2014-11-19"));
            Assert.That(Path.GetFileName(logItems[7].Path) == "UmbracoTraceLog.MictPHC124-PC.txt.2014-11-19");
            Assert.That(logItems[7].MachineName == "MictPHC124-PC");
        }
示例#2
0
        //select directory
        private void button1_Click(object sender, EventArgs e)
        {
            try
            {
                if (folderBrowserDialog1.ShowDialog().Equals(DialogResult.OK))
                {
                    selectedDirectory.Text = folderBrowserDialog1.SelectedPath;
                }

                logFiles = new LogFileService().GetLogFiles(new List <string> {
                    selectedDirectory.Text
                });
                archives = new LogFileService().GetZipFiles(new List <string> {
                    selectedDirectory.Text
                });
                listView1.Items.Clear();
                listView2.Items.Clear();
                listView1.Items.AddRange(logFiles.Select(x =>
                {
                    var item = new ListViewItem(x.Name);
                    item.Tag = x.FileLocation;
                    return(item);
                }).ToArray());
                listView2.Items.AddRange(archives.Select(x => new ListViewItem(x)).ToArray());
                totalLogsLabel.Text = new LogFileService().CountFiles(new List <string> {
                    selectedDirectory.Text
                }).ToString();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
示例#3
0
        public string fizzBuzz(int numIntroducido)
        {
            Funciones funciones     = new Funciones();
            string    cadenaRetorno = String.Empty;

            for (int i = numIntroducido; i < maxValue; i++)
            {
                switch (checkFizzBuzz(i))
                {
                case 1:
                    cadenaRetorno += funciones.contruirCadena(getBuzz());
                    break;

                case 2:
                    cadenaRetorno += funciones.contruirCadena(getFizz());
                    break;

                case 3:
                    cadenaRetorno += funciones.contruirCadena(getFizzBuzz());
                    break;

                default:
                    cadenaRetorno += funciones.contruirCadena(i.ToString());
                    break;
                }
            }
            cadenaRetorno = funciones.comprobacionUltimoCaracter(cadenaRetorno);
            LogFileService.LogFile(cadenaRetorno);
            return(cadenaRetorno);
        }
示例#4
0
        public void Has_Correct_Files()
        {
            LogFileService logFileService = new LogFileService();

            var logItems = logFileService.GetDateSortedLogFileDataFromFileNames(allDummyLogFileNames).ToArray();

            foreach (var logItem in logItems)
            {
                TestContext.WriteLine(logItem);
            }

            Assert.That(logItems.Count, Is.EqualTo(11));

            TestIsCorrectFormat(logItems[0], DateTime.Today, "UmbracoTraceLog.txt", null);

            TestIsCorrectFormat(logItems[1], DateTime.Parse("2016-12-20"), "UmbracoTraceLog.helloworld.2016-12-20.1.txt", "helloworld");

            TestIsCorrectFormat(logItems[3], DateTime.Parse("2016-01-16"), "UmbracoTraceLog.Machine.Name.txt.2016-01-16", "Machine.Name");

            TestIsCorrectFormat(logItems[8], DateTime.Parse("2015-09-05"), "UmbracoTraceLog.txt.2015-09-05", null);

            TestIsCorrectFormat(logItems[9], DateTime.Parse("2014-11-19"), "UmbracoTraceLog.MictPHC124-PC.txt.2014-11-19", "MictPHC124-PC");

            TestIsCorrectFormat(logItems[9], DateTime.Parse("2013-09-14"), "Umbraco.2013-09-14.txt", null);
        }
示例#5
0
 //file search with date button
 private void button2_Click(object sender, EventArgs e)
 {
     logFiles = new LogFileService().SearchFilesByTime(dateTimePicker1.Value, dateTimePicker2.Value,
                                                       new List <string> {
         selectedDirectory.Text
     });
     listViewSourceChanged();
 }
示例#6
0
 //file search with size button
 private void button3_Click(object sender, EventArgs e)
 {
     logFiles = new LogFileService().SearchFilesBySize(long.Parse(fromSizeSearch.Text),
                                                       long.Parse(toSizeSearch.Text), new List <string> {
         selectedDirectory.Text
     });
     listViewSourceChanged();
 }
示例#7
0
        public void Should_Extract_MachineNames()
        {
            foreach (var entry in logFileNames)
            {
                string machineName = LogFileService.GetMachineName(entry.Key);

                Assert.AreEqual(entry.Value, machineName, "The machine name should be {0} but was {1}", entry.Value, machineName);
            }
        }
示例#8
0
        private void createArchiveButton_Click(object sender, EventArgs e)
        {
            var resp = new LogFileService().ZipFiles(new List <string> {
                selectedDirectory.Text
            },
                                                     createArchiveFrom.Value, createArchiveTo.Value);

            MessageBox.Show(resp.message);
        }
示例#9
0
 /// <summary>
 /// Gets the trace log data and metadata for the file with a given filename
 /// </summary>
 /// <returns>Log data for the log file</returns>
 /// <remarks>/Umbraco/TraceLogViewer/TraceLog/GetLogDataResponse</remarks>
 public LogDataResponse GetLogDataResponse(string logfileName)
 {
     return(new LogDataResponse()
     {
         LogDataItems = this.logDataService.GetLogDataFromDefaultFilePath(logfileName).OrderByDescending(l => l.Date),
         LastModifiedTicks = this.logDataService.GetLastModifiedTicks(logfileName),
         Date = LogFileService.GetLogFileDate(Path.Combine(LogFileService.BaseLogPath, logfileName))
     });
 }
        static void Main(string[] args)
        {
            string            connectionString = ConfigurationManager.ConnectionStrings["LocalConnection"].ConnectionString;
            var               db  = new VendingDBService(connectionString);
            var               log = new LogFileService();
            VendingMachine    vm  = new VendingMachine(db, log);
            VendingMachineCLI cli = new VendingMachineCLI(vm);

            cli.Run();
        }
示例#11
0
        static void Main(string[] args)
        {
            //IVendingService db = new VendingDBService();
            IVendingService db = new MockVendingDBService();

            var items = db.GetVendingItems();

            InventoryManager inventory = new InventoryManager(items);

            for (int rowIdx = 1; rowIdx <= inventory.RowCount; rowIdx++)
            {
                for (int colIdx = 1; colIdx <= inventory.ColCount; colIdx++)
                {
                    Console.WriteLine(inventory.GetVendingItem(rowIdx, colIdx).ToString());
                }
            }

            Console.WriteLine();
            Console.WriteLine();

            ReportManager reportManager = new ReportManager(db);
            Report        report        = reportManager.GetReport(2018, db.GetProductItems());
            var           reportItems   = report.ReportItems;

            foreach (var item in reportItems)
            {
                Console.WriteLine($"{item.Name}|{item.Qty}");
            }
            Console.WriteLine();
            Console.WriteLine($"**Total Sales** {report.TotalSales.ToString("c")}");

            Console.WriteLine();
            Console.WriteLine();
            Console.WriteLine();

            ILogService log    = new LogFileService();
            Change      change = TestManager.PopulateLogFileWithOperations(db, log);

            Console.WriteLine(log.GetLogData());

            Console.WriteLine();
            Console.WriteLine();

            TransactionManager trans = new TransactionManager(db, log);

            Console.WriteLine($"Change: {change.Dollars} Dollars {change.Quarters} Quarters {change.Dimes} Dimes {change.Nickels} Nickels {change.Pennies} Pennies");

            Console.ReadKey();
        }
        private TreeNodeCollection PopulateTreeNodes(string parentId, FormDataCollection qs)
        {
            TreeNodeCollection tree    = new TreeNodeCollection();
            LogFileService     service = new LogFileService();

            foreach (var logFile in service.GetLogFiles())
            {
                string date = logFile.Date.ToString("yyyy-MM-dd");

                string path = HttpUtility.UrlEncode(System.IO.Path.GetFileName(logFile.Path));

                tree.Add(CreateTreeNode(path, parentId, qs, date, "icon-notepad"));
            }

            return(tree);
        }
        static void Main(string[] args)
        {
            var builder = new ConfigurationBuilder()
                          .SetBasePath(Directory.GetCurrentDirectory())
                          .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true);
            IConfigurationRoot configuration = builder.Build();

            string connectionString = configuration.GetConnectionString("DefaultConnection");

            var db = new VendingDBService(connectionString);
            //var db = new MockVendingDBService();

            var            log = new LogFileService();
            VendingMachine vm  = new VendingMachine(db, log);
            VndrCLI        cli = new VndrCLI(vm);

            cli.Run();
        }
        protected override TreeNodeCollection GetTreeNodes(string id, FormDataCollection qs)
        {
            TreeNodeCollection tree    = new TreeNodeCollection();
            LogFileService     service = new LogFileService();
            var logFiles = service.GetLogFiles();

            if (logFiles == null || !logFiles.Any())
            {
                return(tree);
            }

            var recent = logFiles.Where(l => l.Date.Date == DateTime.Today);

            if (!recent.Any())
            {
                recent = logFiles.FirstOrDefault().AsEnumerableOfOne();
            }

            if (id == Constants.System.Root.ToInvariantString())
            {
                if (recent.Any())
                {
                    foreach (var logFile in recent)
                    {
                        CreateDateLogTreeItem(id, qs, tree, logFile);
                    }
                }

                tree.Add(CreateTreeNode("Date", id, qs, "Dates", "icon-folder", true));
                tree.Add(CreateTreeNode("Filename", id, qs, "Filenames", "icon-folder", true));
            }

            if (id == "Date")
            {
                this.AddDateRangeTree(tree, id, qs, logFiles);
            }

            if (id == "Filename")
            {
                this.AddFileNameTree(tree, id, qs, logFiles);
            }

            return(tree);
        }
示例#15
0
 //file search with date button
 private void button2_Click(object sender, EventArgs e)
 {
     try
     {
         logFiles = new LogFileService().SearchFilesByTime(dateTimePicker1.Value, dateTimePicker2.Value,
                                                           new List <string> {
             selectedDirectory.Text
         });
         listView1.Items.Clear();
         listView1.Items.AddRange(logFiles.Select(x =>
         {
             var item = new ListViewItem(x.Name);
             item.Tag = x.FileLocation;
             return(item);
         }).ToArray());
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.Message);
     }
 }
示例#16
0
 //file search with size button
 private void button3_Click(object sender, EventArgs e)
 {
     try
     {
         logFiles = new LogFileService().SearchFilesBySize(long.Parse(fromSizeSearch.Text),
                                                           long.Parse(toSizeSearch.Text), new List <string> {
             selectedDirectory.Text
         });
         listView1.Items.Clear();
         listView1.Items.AddRange(logFiles.Select(x =>
         {
             var item = new ListViewItem(x.Name);
             item.Tag = x.FileLocation;
             return(item);
         }).ToArray());
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.Message);
     }
 }
        private TreeNodeCollection PopulateTreeNodes(string parentId, FormDataCollection qs)
        {
            TreeNodeCollection tree               = new TreeNodeCollection();
            LogFileService     service            = new LogFileService();
            string             currentMachineName = Environment.MachineName;

            foreach (var logFile in service.GetLogFiles())
            {
                string title = logFile.Date.ToString("yyyy-MM-dd");

                if (logFile.MachineName != null && !logFile.MachineName.InvariantEquals(currentMachineName))
                {
                    title += " (" + logFile.MachineName + ")";
                }

                string path = HttpUtility.UrlEncode(System.IO.Path.GetFileName(logFile.Path));

                tree.Add(CreateTreeNode(path, parentId, qs, title, "icon-notepad"));
            }

            return(tree);
        }
示例#18
0
        //select directory
        private void button1_Click(object sender, EventArgs e)
        {
            if (folderBrowserDialog1.ShowDialog().Equals(DialogResult.OK))
            {
                selectedDirectory.Text = folderBrowserDialog1.SelectedPath;
            }

            logFiles = new LogFileService().GetLogFiles(new List <string> {
                selectedDirectory.Text
            });
            archives = new LogFileService().GetZipFiles(new List <string> {
                selectedDirectory.Text
            });
            listView1.Items.AddRange(logFiles.Select(x =>
            {
                var item = new ListViewItem(x.Name);
                item.Tag = x.FileLocation;
                return(item);
            }).ToArray());

            listView2.Items.AddRange(archives.Select(x => new ListViewItem(x)).ToArray());
            listViewSourceChanged();
        }
        private async void RefreshLogFile(object obj)
        {
            if (obj is LogFile logFile)
            {
                var result = await LogFileService.LoadLogEntriesIntoSourceCacheAsync(logFile, LogEntriesSourceCache);

                if (result.OperationFailed)
                {
                    await result.ShowUserErrorMessage(DialogCoordinator, this);
                }
                await Task.Delay(1000);

                logFile.Refreshing = false;
                if (logFile.RefreshPending)
                {
                    logFile.RefreshPending = false;
                    if (logFile.AutoRefresh)
                    {
                        logFile.Refreshing = true;
                        RefreshLogFile(logFile);
                    }
                }
            }
        }
示例#20
0
 public CloseLogCommand(LogFileService logFileService)
 {
     _logFileService = logFileService;
 }
        /// <summary>
        /// Gets a list of trace log files
        /// </summary>
        /// <returns>A collection of log file items</returns>
        /// <remarks>/Umbraco/TraceLogViewer/TraceLog/GetLogFilesList</remarks>
        public IEnumerable <LogFileItem> GetLogFilesList()
        {
            LogFileService service = new LogFileService();

            return(service.GetLogFiles());
        }
示例#22
0
        private async void OpenLogView(LogView logView)
        {
            logView.Open();
            AdjustOpenLogViewCount(1);
            RequestSetSelectedLogView(logView);
            logView.IsLoading = true;
            RequestToggleLaunchViewIsOpen();

            await Task.Delay(500);

            if (!logView.IsNew && LogViewToOpenDocumentIn == null)
            {
                OpenableObjectService.SaveOpenableObject(logView);
            }

            var tasks = new List <Task <ServiceOperationResult> >();

            foreach (var logFilePath in logView.LogFilePaths)
            {
                var logFile = LogFilesSourceCache.Lookup(logFilePath);
                if (logFile.HasValue)
                {
                    logFile.Value.Open();
                    OpenableObjectService.SaveOpenableObject(logFile.Value);
                    tasks.Add(LogFileService.LoadLogEntriesIntoSourceCacheAsync(logFile.Value, LogEntriesSourceCache));
                }
            }

            foreach (var databaseName in logView.DatabaseNames)
            {
                var database = DatabasesSourceCache.Lookup(databaseName);
                if (database.HasValue)
                {
                    database.Value.Open();
                    OpenableObjectService.SaveOpenableObject(database.Value);
                    tasks.Add(DatabaseService.LoadLogEntriesIntoSourceCache(database.Value, LogEntriesSourceCache));
                }
            }

            var results = await Task.WhenAll(tasks);

            var failedLogFilesString  = string.Empty;
            var failedDatabasesString = string.Empty;
            var errorMessage          = string.Empty;
            await Task.Run(() =>
            {
                for (int i = 0; i < results.Length - logView.DatabaseNames.Count; i++)
                {
                    var result = results[i];
                    if (result.OperationFailed && logView.LogFilePaths.Count > i)
                    {
                        failedLogFilesString += logView.LogFilePaths[i] + "," + Environment.NewLine;
                    }
                }
                if (failedLogFilesString.Length > 2)
                {
                    failedLogFilesString = failedLogFilesString.Substring(0, failedLogFilesString.Length - 3);
                }

                for (int i = logView.LogFilePaths.Count; i < results.Length; i++)
                {
                    var result = results[i];
                    if (result.OperationFailed)
                    {
                        failedDatabasesString += logView.DatabaseNames[i - logView.LogFilePaths.Count] + "," + Environment.NewLine;
                    }
                }
                if (failedDatabasesString.Length > 2)
                {
                    failedDatabasesString = failedDatabasesString.Substring(0, failedDatabasesString.Length - 3);
                }

                if (!string.IsNullOrWhiteSpace(failedLogFilesString))
                {
                    errorMessage += $"Failed to load log entries for the following log files:{Environment.NewLine + failedLogFilesString}";
                    if (!string.IsNullOrWhiteSpace(failedDatabasesString))
                    {
                        errorMessage += $"{Environment.NewLine + Environment.NewLine}Failed to load log entries for the following databases:{Environment.NewLine + failedDatabasesString}";
                    }
                }
                else if (!string.IsNullOrWhiteSpace(failedDatabasesString))
                {
                    errorMessage += $"Failed to load log entries for the following databases:{Environment.NewLine + failedDatabasesString}";
                }
            });

            if (!string.IsNullOrWhiteSpace(errorMessage))
            {
                //TODO: I'm getting this summary error message and individual error messages. Have to disable the error message for each individual log source.
                await DialogCoordinator.ShowMessageAsync(this, "Failed to Load Log Entries", errorMessage);
            }

            //Notify the LogViewManagementViewModel that the AutoRefreshSetting changed so that it can tell databases and log files
            Mediator.NotifyColleagues(MediatorMessages.AutoRefreshSettingChanged, logView.Settings.AutoRefresh);

            logView.IsLoading = false;
        }
示例#23
0
 /// <summary>
 /// Instantiates a new instance with the passed in service implementations
 /// </summary>
 /// <param name="logDataService">A log data service</param>
 /// <param name="logFileService">A log file service</param>
 public TraceLogController(LogDataService logDataService, LogFileService logFileService)
 {
     this.logDataService = logDataService;
     this.logFileService = logFileService;
 }
示例#24
0
 public OpenNlogConfigCommand(LogFileService logFileService, CloseLogCommand closeLogCommand)
 {
     _logFileService  = logFileService;
     _closeLogCommand = closeLogCommand;
 }
示例#25
0
 public ProcessLogFilesController(ILogger <ProcessLogFilesController> logger, LogFileService logService)
 {
     _logger     = logger;
     _logService = logService;
 }