Exemplo n.º 1
0
        private void DoSearchCase(string caseNumber)
        {
            _isBusySearching = true;
            try
            {
                caseNumber = caseNumber.TrimStart('0');
                var foundCases = CaseControls.Where(o => o.CaseModel.CaseNumber.TrimStart('0').StartsWith(caseNumber.TrimStart('0')));

                DimmCasesInverted(foundCases);

                if (!string.IsNullOrEmpty(caseNumber) && foundCases.Count() == 0)
                {
                    IsAbleToOpenNotFoundCase = true;
                }
                else
                {
                    IsAbleToOpenNotFoundCase = false;
                }
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                _isBusySearching = false;
            }
        }
Exemplo n.º 2
0
        private void Sort(bool descending)
        {
            LoggerController.Log("Case Type: " + CaseType.SF.ToString() + " Sort By: " + SortBy.ToString() + ((descending) ? " Descending" : " Ascending"));
            CaseControls.ToList().ForEach(o => o.CloseDetails());
            _isBusySortCases = true;
            IOrderedEnumerable <IGrouping <object, CaseControlVM> > sorted = default(IOrderedEnumerable <IGrouping <object, CaseControlVM> >);

            if (descending)
            {
                sorted = CaseControls.OrderByDescending(Order(SortBy)).GroupBy(Group(GroupBy)).OrderBy(g => g.Key);
            }
            else
            {
                sorted = CaseControls.OrderBy(Order(SortBy)).GroupBy(Group(GroupBy)).OrderBy(g => g.Key);
            }
            UpdatedOrderedCases(sorted);
            _isBusySortCases = false;
        }
Exemplo n.º 3
0
        internal async Task DoSearchCasesText(string text)
        {
            if (string.IsNullOrEmpty(text))
            {
                UnDimmAllCases();
                foreach (var item in CaseControls)
                {
                    item.RevertSearchedTextToOriginal();
                }
                return;
            }
            var found = CaseControls.Where(o => (o.CaseModel.Subject != null && o.CaseModel.Subject.Contains(text)) ||
                                           (o.CaseModel.Description != null && o.CaseModel.Description.Contains(text)));

            DimmCasesInverted(found);
            foreach (var item in found)
            {
                item.HighlightCaseText(text);
            }
        }
Exemplo n.º 4
0
        internal async Task BuildCasesFromArray(string[] cases)
        {
            IList <ICase> casesData;

            try
            {
                _isBusyBuildCases = true;
                casesData         = await Task.Run(() => SFConnector.Instance.GetCasesFromArrayAsync(cases));
            }
            finally
            {
                _isBusyBuildCases = false;
            }
            LoggerController.Log(casesData.Count + $" cases Retrived.");
            foreach (var item in casesData)
            {
                var caseViewModel = new CaseControlVM(item, this);
                CaseControls.Add(caseViewModel);
            }
        }
Exemplo n.º 5
0
        internal async Task DoBuildCasesFromStorage(Dictionary <string, CaseInfo> cases)
        {
            IList <ICase> casesData;

            try
            {
                _isBusyBuildCases = true;
                casesData         = await Task.Run(() => SFConnector.Instance.GetCasesFromArrayAsync(cases.Keys.ToArray()));
            }
            finally
            {
                _isBusyBuildCases = false;
            }
            LoggerController.Log(casesData.Count + $" cases Retrived.");
            foreach (var item in casesData)
            {
                var caseViewModel = new CaseControlVM(item, this);
                caseViewModel.Index = cases[item.CaseNumber].Index;
                CaseControls.Add(caseViewModel);
            }
        }
Exemplo n.º 6
0
        private void DimmCasesInverted(IEnumerable <CaseControlVM> dimmAllButThis)
        {
            UnDimmAllCases();
            var invert = CaseControls.Except(dimmAllButThis);

            if (invert.Count() > 0)
            {
                _dimmedCases = invert;
            }
            else
            {
                _dimmedCases = null;
            }

            if (_dimmedCases != null)
            {
                foreach (var item in _dimmedCases)
                {
                    item.SearchDim = true;
                }
            }
        }
Exemplo n.º 7
0
        internal async Task OpenSingleCase(string caseNumber)
        {
            ICase caseData;

            try
            {
                _isBusyBuildCases = true;
                caseData          = await Task.Run(() => SFConnector.Instance.GetTheCase(caseNumber));
            }
            finally
            {
                _isBusyBuildCases = false;
            }
            LoggerController.Log(caseNumber + $" {CaseType.SF.ToString()} case Retrived.");
            if (caseData == null)
            {
                return;
            }
            var caseViewModel = new CaseControlVM(caseData, this);

            CaseControls.Add(caseViewModel);
            caseViewModel.Index = new Index(0, 0);
        }
Exemplo n.º 8
0
 public void OnCaseHeightChanged()
 {
     CanvasHeight = (CaseControls.Max(o => o.Top as int?) ?? 0) + ConrnerGap;
     RefreshSizes();
 }
Exemplo n.º 9
0
 internal void RemoveCase(CaseControlVM caseControl)
 {
     CaseControls.Remove(caseControl);
     CasesStatesOperations.RemoveCase(caseControl, _previousQueue, TabHeader);
 }
Exemplo n.º 10
0
 internal void UpdateCasesPositions()
 {
     CasesStatesOperations.UpdateCasesPositions(CaseControls.ToList(), _previousQueue, TabHeader);
     CasesStatesOperations.UpdateLabelsPositions(CellLabels.ToList(), _previousQueue, TabHeader);
 }
Exemplo n.º 11
0
        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;
            }
        }
Exemplo n.º 12
0
 private void RefreshSizes()
 {
     CaseControls.ToList().ForEach(o => o.RefreshPositionFromIndex());
 }
Exemplo n.º 13
0
 public void OnLongCaseWidthChanged()
 {
     CanvasWidth = (CaseControls.Max(o => o.Left as int?) ?? 0) + ConrnerGap;
     RefreshSizes();
 }