private async Task BuildCasesAsync(string selection)
        {
            IList <ICase> casesData;

            try
            {
                _isBusyBuildCases = true;
                if (_caseType == CaseType.SF)
                {
                    casesData = await Task.Run(() => SFConnector.Instance.GetCasesAsync(selection));
                }
                else
                {
                    throw new ArgumentException($"CaseType is not set to a proper type: {_caseType.ToString()}");
                }
            }
            finally
            {
                _isBusyBuildCases = false;
            }
            LoggerController.Log(casesData.Count + $" {_caseType.ToString()} cases Retrived.");
            Cases        = new ObservableCollection <ICase>(casesData);
            SelectedCase = (Cases.Count > 0) ? Cases[0] : default(ICase);
        }
        private async Task BuildCasesAsync(string selection)
        {
            if (!string.IsNullOrEmpty(_previousQueue))
            {
                UpdateCasesPositions();
            }
            CaseControls.Clear();
            CellLabels.Clear();
            IList <ICase> casesData = default;

            try
            {
                _isBusyBuildCases = true;
                casesData         = await Task.Run(() => SFConnector.Instance.GetCasesAsync(selection));
            }
            catch (Exception e)
            {
                LoggerController.Log(e.Message);
            }

            _previousQueue = selection;
            LoggerController.Log(casesData.Count + $" cases Retrived.");
            CaseControls = await Task.Run(() =>
            {
                ObservableCollection <CaseControlVM> cc = new ObservableCollection <CaseControlVM>();
                foreach (var item in casesData)
                {
                    var caseViewModel = new CaseControlVM(item, this);
                    cc.Add(caseViewModel);
                    CaseInfo positionInfo = null;
                    try
                    {
                        positionInfo = CasesStatesOperations.GetCaseInfo(item.CaseNumber, selection, TabHeader);
                    }
                    catch (Exception e)
                    {
                        LoggerController.Log(e.Message);
                    }
                    if (positionInfo != null)
                    {
                        caseViewModel.Index = positionInfo.Index;
                    }
                }
                return(cc);
            }
                                          );

            try
            {
                //Add Labels from JSON
                var caseslist = await Task.Run(() => CasesStatesOperations.GetCasesList(selection, TabHeader));

                foreach (LabelInfo item in caseslist.Labels.Values)
                {
                    var success = Guid.TryParse(item.Guid, out Guid guid);
                    if (!success)
                    {
                        continue;
                    }
                    CellLabels.Add(new CellLabelVM(this, item.Left, item.Top, item.Width, item.Height, item.Note, guid));
                }
            }
            catch (Exception e)
            {
                LoggerController.Log(e.Message);
            }
            finally
            {
                _isBusyBuildCases = false;
            }
        }
Beispiel #3
0
 public void HandleError(Exception e)
 {
     LoggerController.Log(e);
     //throw new Exception();
 }