public async Task LoadData(DsRequest Request, bool resetChart = true)
        {
            await semaphoreSlim.WaitAsync();

            try
            {
                if (isLoading == false)
                {
                    isLoading = true;
                    await InvokeAsync(() => StateHasChanged());
                }
                response = await dataService.LoadData(Request);

                if (response != null)
                {
                    Request.Responses.Add(response);
                    isDataAvailable = true;
                    if (resetChart)
                    {
                        SetChartData();
                        if (Request.doReloadSelected && Request.CmdrsSelected != null)
                        {
                            var cmdrsSelected = Request.CmdrsSelected.Where(x => x.Selected && x.Name != Request.Interest);
                            if (cmdrsSelected.Any())
                            {
                                foreach (var cmdr in cmdrsSelected)
                                {
                                    var cmdrrequest  = new DsRequest(Request.Mode, Request.Timespan, Request.Player, cmdr.Name);
                                    var cmdrresponse = await dataService.LoadData(cmdrrequest);

                                    ChartService.AddChartDataSet(_config, cmdrrequest, cmdrresponse);
                                    chartComponent.Update();
                                }
                            }
                        }
                    }
                }
                else
                {
                    Info = "Failed loading data :(";
                }
            }
            catch (Exception e)
            {
                logger.LogError($"failed loading data: {e.Message}");
            }
            finally
            {
                semaphoreSlim.Release();
            }
            isLoading = false;
            await InvokeAsync(() => StateHasChanged());
        }