public async Task Run(string txtCaseNr, Action <string, MessageLevels, string> notify) { _notify = notify; var caseNr = txtCaseNr?.Trim().Replace("_", "") + ""; if (!string.IsNullOrEmpty(caseNr)) { caseNr += "_"; } Settings.ApplicatonBaseName = "QlikViewCollector"; var resultPathRutine = new GetOutputFolder().FallbackRutine(Settings.ApplicatonBaseName); Settings.LogFilePath = Path.Combine(resultPathRutine, "QvCollector.log"); Settings.OutputFolderPath = resultPathRutine; Log.Init(Settings.LogFilePath);//todo: remove and move into local log implimentation. Warning init with empty string will create a device zero logging. _logger.Add($"started with version {Application.ProductVersion}"); _notify("Connecting to QlikView Installation", MessageLevels.Animate, "Connecting"); CollectorService = new QlikViewCollectorService(_logger, _notify, DoneAction) { ConnectToApiManuallyDlg = ShowConnectionFailuresDialogue, PathToLogFolderDlg = ShowLogFolderDialogue, PathToArchivedLogsDlg = ShowArchivedLogsFolderDialogue, }; //_settings.StartDateForLogs = _startDate; //_settings.StopDateForLogs = _stopDate; Settings.UseOnlineDelivery = false; //chkOnline.Checked; Settings.AllowRemoteLogs = FreyrCollectorCommon.Common.Settings.AllowRemoteLogs; Settings.AllowArchivedLogs = FreyrCollectorCommon.Common.Settings.AllowArchivedLogs; Settings.AllowSenseInfo = FreyrCollectorCommon.Common.Settings.AllowSenseInfo; Settings.DnsHostName = (Dns.GetHostEntry(Dns.GetHostName()).HostName).ToLower(); Settings.CustomerKey = ""; Settings.Key = caseNr; Settings.QvSettings.QmsAddress = $"http://{Settings.DnsHostName}:4799/QMS/Service"; try { await CollectorService.Start(Settings).ConfigureAwait(false); } catch (Exception ex) { Log.Add("Failed accessing installation.", ex); DoneAction.Invoke(@"Failed accessing installation.", @"We unfortunately had a problem reading the QlikView installation. You will have to manually send us your logs.", CollectorService); } }
public override void ExtendedUpdate() { if (need_set_false_to_actions) { need_set_false_to_actions = false; foreach (var t in Tasks) { t.in_action = false; } } if (start) { Initialization(); foreach (Task task in Tasks) { CheckTaskActivity(task, true); } MessageBus.Instance.SendMessage(MainScene.MainMenuMessageType.INIT_TASKS); start = false; } second_timer -= Time.deltaTime; if (second_timer <= 0.0f) { var seconds = (int)(second_timer * -1); second_timer = 1.0f; foreach (Task task in ActiveTasks) { task.time_wait -= 1; task.time_wait -= (int)delta; if (task.TickAction != null) { task.TickAction(); } } delta = 0; } foreach (Task task in ActiveTasks) { CheckTaskActivity(task, false); //bool in_main_view = DataController.instance.tasks_storage.content.ContainsKey("catshow_scene") ? // ((bool)DataController.instance.tasks_storage.content["catshow_scene"] == false && // (bool)DataController.instance.tasks_storage.content["mainhome_scene"] == true) : true; if (task.DoneCondition() && !check_any_task_in_action() /*&& in_main_view*/) { GameStatistics.instance.SendStat("finish_story_mission", task.index); MessageBus.Instance.SendMessage(MainScene.MainMenuMessageType.CLOSE_CAT_SHOW); MessageBus.Instance.SendMessage(MainScene.MainMenuMessageType.SHOW_MAIN_MENU); MessageBus.Instance.SendMessage(MainScene.MainMenuMessageType.CLOSE_CUSTOMIZER); MessageBus.Instance.SendMessage(MainScene.MainMenuMessageType.CLOSE_SCAN_MENU); MessageBus.Instance.SendMessage(MainScene.MainMenuMessageType.CLOSE_TASK_LIST_ONLY); MessageBus.Instance.SendMessage(MainScene.MainMenuMessageType.CLOSE_SHOP); MessageBus.Instance.SendMessage(MainScene.MainMenuMessageType.CLOSE_MINI_GAMES); Analytics.CustomEvent("taskDone", new Dictionary <string, object> { { "task_id", task.index } }); task.DoneAction(); ActiveTasks.Remove(task); DataStorage.content.storable_data[task.index].done = true; if (!task.not_for_pb) { Message msg = new Message(); msg.Type = MainScene.MainMenuMessageType.UPDATE_TASKS_PB; var p = new List <int>(); p.Add(task.index); msg.parametrs = new CommonMessageParametr(p); MessageBus.Instance.SendMessage(msg); DataStorage.content.done_mission_cnt++; } DataStorage.Store(); foreach (Task t in Tasks) { CheckTaskActivity(t, false); } } } if (AllDone() && !(bool)DataController.instance.tasks_storage.content["all_done"]) { end_timer -= Time.deltaTime; if (end_timer < 0) { DoneAction.Action(); DataController.instance.tasks_storage.content["all_done"] = true; DataController.instance.tasks_storage.Store(); } } }
public void DoAction(FigureAction action) => DoneAction?.Invoke(action);