Example #1
0
        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);
            }
        }
Example #2
0
        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();
                }
            }
        }
Example #3
0
 public void DoAction(FigureAction action) => DoneAction?.Invoke(action);