private async Task <bool> BuildQueueAsync() { bool success; QueueItems = default(string[]); try { _isBusyBuildQueues = true; BusySpinnerVM.StartSpinning(); QueueItems = await Task.Run(() => SFConnector.Instance.GetCasesQueues()); success = true; } catch (Exception ex) { LoggerController.Log(ex); success = false; } finally { _isBusyBuildQueues = false; } BusySpinnerVM.StopSpinning(success); return(success); }
private void LoadColumnState() { try { var columnState = ColumnSettingsOperations.LoadColumnState(_tabIdentifier); if (columnState == null) { return; } int newIndex = 0; foreach (var col in columnState) { int oldIndex = 0; for (int i = 0; i < casesGridView.Columns.Count; i++) { if (casesGridView.Columns[i].Header.ToString().Equals(col.ColumnName)) { oldIndex = i; break; } } casesGridView.Columns[oldIndex].Width = col.Width; casesGridView.Columns.Move(oldIndex, newIndex++); } _columnsLoaded = true; } catch (Exception e) { LoggerController.Log(e, "Unable to read columns setting file or file has invalid formatting"); } }
internal async static Task <T> TryNTimesAsync <T>(Func <Task <T> > func, int times, string initialMessage = "") { while (times > 0) { LoggerController.Log(initialMessage); try { return(await func()); } catch (Exception e) { if (--times <= 0) { LoggerController.Log(e); throw; //return default(T); } LoggerController.Log(e); LoggerController.Log("Repeating in 5 seconds"); Thread.Sleep(5000); } } //No check connect with 0 times. return(await func()); }
public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { if (value.GetType() != typeof(Priority)) { return(null); } var priority = (Priority)value; switch (priority) { case Priority.Low: return((Brush)Application.Current.MainWindow.FindResource("Priority.Low.Brush")); case Priority.Med: return((Brush)Application.Current.MainWindow.FindResource("Priority.Mid.Brush")); case Priority.High: return((Brush)Application.Current.MainWindow.FindResource("Priority.High.Brush")); case Priority.Critical: return((Brush)Application.Current.MainWindow.FindResource("Priority.Critical.Brush")); case Priority.NotApplicable: return((Brush)Application.Current.MainWindow.FindResource("Priority.NotApplicable.Brush")); default: LoggerController.Log("No Color match for Case Priority " + priority.ToString()); return(null); } }
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()}"); }
public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { if (value.GetType() != typeof(SFStatus)) { return(null); } var status = value as SFStatus; switch (status.Value) { case SFStatusE.New: return((Brush)Application.Current.MainWindow.FindResource("Status.New.Brush")); case SFStatusE.InReview: return((Brush)Application.Current.MainWindow.FindResource("Status.InReview.Brush")); case SFStatusE.Reviewed: return((Brush)Application.Current.MainWindow.FindResource("Status.Reviewed.Brush")); case SFStatusE.InBacklog: return((Brush)Application.Current.MainWindow.FindResource("Status.InBacklog.Brush")); case SFStatusE.InProcess: return((Brush)Application.Current.MainWindow.FindResource("Status.InProcess.Brush")); case SFStatusE.InDevelopment: return((Brush)Application.Current.MainWindow.FindResource("Status.InDevelopment.Brush")); case SFStatusE.InQA: return((Brush)Application.Current.MainWindow.FindResource("Status.InQA.Brush")); case SFStatusE.AwaitingApproval: return((Brush)Application.Current.MainWindow.FindResource("Status.AwaitingApproval.Brush")); case SFStatusE.PendingRelease: return((Brush)Application.Current.MainWindow.FindResource("Status.PendingRelease.Brush")); case SFStatusE.OnHold: return((Brush)Application.Current.MainWindow.FindResource("Status.OnHold.Brush")); case SFStatusE.Closed: return((Brush)Application.Current.MainWindow.FindResource("Status.Closed.Brush")); case SFStatusE.Cancelled: return((Brush)Application.Current.MainWindow.FindResource("Status.Cancelled.Brush")); case SFStatusE.ReOpened: return((Brush)Application.Current.MainWindow.FindResource("Status.ReOpened.Brush")); default: LoggerController.Log("No Color match for Case Status " + status.Value.ToString()); return(null); } }
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; }
public WorkAreaVM() { Tabs = new ObservableCollection <TabsContainer>(); TabsContainer.Container = Tabs; try { foreach (var tab in CasesStatesOperations.GetTabs()) { Tabs.Add(new TabsContainer(new SortBarPannelVM(tab))); } } catch (Exception e) { LoggerController.Log(e.Message); } AddEmptyTab = new RelayCommand(DoAddEmptyTab); }
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); } }
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); } }
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); }
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; } }
public void HandleError(Exception e) { LoggerController.Log(e); //throw new Exception(); }