public static CaseInfo GetCaseInfo(string caseNumber, string caseQueueName, string tabIdentifier) { var list = GetCasesList(caseQueueName, tabIdentifier); if (list.Cases.ContainsKey(caseNumber)) { return(list.Cases[caseNumber]); } else { var caseInfo = new CaseInfo { Index = new Index(0, 0) }; list.Cases.Add(caseNumber, caseInfo); return(caseInfo); } }
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; } }