/// <summary> /// The constructor of the base class, from which Mako Runners should be derived, /// will store various bits of data relating to the service being created. These /// bits of data will be similar for all Mako Runners. /// </summary> /// <param name="keyServer"></param> /// <param name="consoleCommand"></param> public BaseMakoRunner(Guid keyServer, ConsoleCommand consoleCommand) { // Info = new RunnerInfo(consoleCommand); // MyRunnerId = keyServer; // Create the log provider to log progress. MakoLogger = new DelegateLogProvider(); // MakoLogger._onProgressUpdate += MakoLogger__onProgressUpdate; }
/// <summary> /// /// </summary> /// <param name="companyConfig"></param> /// <param name="serviceProgressInfo"></param> protected BaseTopshelfWindowsService(CompanyConfig companyConfig, ServiceProgressInfo serviceProgressInfo) { // MakoSocket = new ServicesWebSocket(); // Create the log provider to log progress. if (MakoLogger == null) { MakoLogger = new DelegateLogProvider(); } // Set the event handler for change events. MakoLogger._onProgressUpdate += MakoLogger__onProgressUpdate; // ServiceProgressInfo = serviceProgressInfo; // Config = companyConfig; }
/// <summary> /// /// </summary> /// <param name="appContract"></param> /// <param name="makoLogger"></param> /// <param name="makoCache"></param> /// <param name="queueManager"></param> private void ProcessQueueItem(ApplicationContract appContract, DelegateLogProvider makoLogger, SqlCacheRepo makoCache, QueueManagement queueManager) { // TODO: Find a smart way to check to see if there are changes to the connection strings and so forth // while (queueManager.FindNextQueueItem(out RunQueueItem item)) // TODO: Write authentication for app { // var startTime = DateTimeOffset.Now; _logRunTy = item.RunTy; ConnectString = appContract.GenerateConnectionStr(); _logCompanyId = Config.CompanyId; _logQueueId = item.QueueId; _logPeriodType = item.PeriodTy; _logPeriodId = item.PeriodId; try { // UpdateMakoAdmin(item, makoCache, makoLogger); // _listLog = new List <string>(); _listLog.Add(""); _listLog.Add($"{DateTime.UtcNow.ToString("G")} ------------------------------------------"); _listLog.Add( $"{DateTime.UtcNow.ToString("G")} Now Processing Real Time - QueueId {item.QueueId}"); _listLog.Add( $"{DateTime.UtcNow.ToString("G")} RunTy({item.RunTy}), PlanId({item.PlanId}), RevisionId({item.RevisionId})"); _listLog.Add($"{DateTime.UtcNow.ToString("G")} ------------------------------------------"); _listLog.Add(""); // Assembly assm, string typesXML, string bonusXML, string glossaryXML, // string overrideXML, string rankXML, string volumeXML var myschema = new MakoXMLSchemas( Assembly, PlanName + ".MakoTypes.xml", PlanName + ".MakoBonuses.xml", "", PlanName + ".MakoOverrides.xml", PlanName + ".MakoRanks.xml", PlanName + ".MakoVolumes.xml" ); // MakoConfig comConfig = new MakoConfig() { PeriodID = item.PeriodId, PeriodTy = item.PeriodTy, QueueID = item.QueueId, RunDescr = item.RunDescr, RunID = item.RunId, RunTy = item.RunTy, XMLSchema = myschema, PlanID = item.PlanId, RevisonID = item.RevisionId }; // Admin.ProcessCommissions(comConfig); // var endTime = DateTimeOffset.Now; // if (comConfig.RunID != 0 && comConfig.RunTy != 4) { LoggingHelpers.UpdateRunLog(appContract.GenerateConnectionStr(), Config.CompanyId, item.QueueId, comConfig.RunID); queueManager.UpdateRunStartAndEndDate(appContract.GenerateConnectionStr(), Config.CompanyId, item.RunId, startTime, endTime); } queueManager.DeleteQueueItem(item.QueueId); var log = new FileLogger(Config.CompanyKey, item.QueueId, item.RunTy); log.GenerateLog(_listLog); _listLog.Clear(); // if (!IsRunning) { break; } } catch (Exception ex) { var log = new FileLogger(Config.CompanyKey, item.QueueId, item.RunTy); _listLog.Add($"{DateTime.UtcNow.ToString("G")} [Error] " + ex.Message); _listLog.Add($"{DateTime.UtcNow.ToString("G")} [Error] " + ex.StackTrace); log.GenerateLog(_listLog); _listLog.Clear(); // queueManager.LogQueueError(appContract.GenerateConnectionStr(), Config.CompanyId, item.QueueId, ex); } } // Thread.Sleep(TimeSpan.FromSeconds(1)); }