internal void AddCellLabel(Point position) { Index index = Index.GetCellCornerPoint((int)position.X, (int)position.Y, CaseWidth, CaseHeight); var label = new CellLabelVM(this, index.X, index.Y); CellLabels.Add(label); LoggerController.Log($"Added Label to {index.X.ToString()}, {index.Y.ToString()}"); }
internal void BuildLabelsFromStorage(Dictionary <string, LabelInfo> labels) { foreach (LabelInfo item in 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)); } }
internal void RemoveLabel(CellLabelVM cellLabelVM) { CasesStatesOperations.RemoveLabel(cellLabelVM.Guid, _previousQueue, TabHeader); CellLabels.Remove(cellLabelVM); }
internal void UpdateCasesPositions() { CasesStatesOperations.UpdateCasesPositions(CaseControls.ToList(), _previousQueue, TabHeader); CasesStatesOperations.UpdateLabelsPositions(CellLabels.ToList(), _previousQueue, TabHeader); }
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; } }