private async void SetupContext(List<JiraTimer> timers, List<BulkExportModel> oldModels = null) { await Task.Delay(50); modelHelpers.HideFlyout(this); var timersToShow = new List<BulkExportModel>(); var showError = false; try { var jiraDownloadResult = await progressDialogHelper.Do(controller => GetTimers(controller, timers), "Downloading Jira Work Logs To Ensure Accurate Export", true, true); switch (jiraDownloadResult.Status) { case ProgressResult.JiraHelperStatus.Cancelled: modelHelpers.CloseFlyout(this); return; case ProgressResult.JiraHelperStatus.Errored: await DialogCoordinator.Instance.ShowMessageAsync(modelHelpers.DialogContext, "Unable To Locate Jira", "There Was An Error Getting Work Logs"); showError = true; break; case ProgressResult.JiraHelperStatus.Success: timersToShow = jiraDownloadResult.RetVal; break; } } catch (BulkExportException ex) { await DialogCoordinator.Instance.ShowMessageAsync(modelHelpers.DialogContext, "Unable To Locate Jira", ex.Message); showError = true; } if (showError) { modelHelpers.CloseFlyout(this); return; } if (!timersToShow.Any()) { await DialogCoordinator.Instance.ShowMessageAsync(modelHelpers.DialogContext, "Nothing To Export", "There Is No Time To Export"); modelHelpers.CloseFlyout(this); } else if (timersToShow.Count == 1) { modelHelpers.CloseFlyout(this); modelHelpers.OpenFlyout(new Export(modelHelpers, timersToShow.First().Timer.UniqueId, null, true)); } else { var jiraComparer = new JiraReferenceComparer(); timersToShow.Sort((a, b) => { int cmp = b.ExportDate.Date.CompareTo(a.ExportDate.Date); if (cmp == 0) { cmp = jiraComparer.Compare(a.JiraRef, b.JiraRef); } return cmp; }); timersToShow.ForEach(x => DataModel.BulkExports.Add(x)); if (oldModels != null) { foreach (var oldModel in oldModels) { foreach (var newModel in DataModel.BulkExports) { if (oldModel.JiraRef == newModel.JiraRef && oldModel.ExportDate.Date == newModel.ExportDate.Date) { newModel.ShouldExport = oldModel.ShouldExport; newModel.ToExportHours = oldModel.ToExportHours; newModel.ToExportMinutes = oldModel.ToExportMinutes; newModel.WorkLogStrategy = oldModel.WorkLogStrategy; newModel.RemainingHours = oldModel.RemainingHours; newModel.RemainingMinutes = oldModel.RemainingMinutes; newModel.Comment = oldModel.Comment; newModel.StandardComment = oldModel.StandardComment; newModel.ChangeStatus = oldModel.ChangeStatus; } } } } modelHelpers.OpenFlyout(this); } }
private async void SetupContext(List <JiraTimer> timers, List <BulkExportModel> oldModels = null) { await Task.Delay(50); modelHelpers.HideFlyout(this); var timersToShow = new List <BulkExportModel>(); try { var jiraDownloadResult = await progressDialogHelper.Do(controller => GetTimers(timers), "Downloading Jira Work Logs To Ensure Accurate Export", true, true); switch (jiraDownloadResult.Status) { case ProgressResult.JiraHelperStatus.Cancelled: modelHelpers.CloseFlyout(this); return; case ProgressResult.JiraHelperStatus.Success: timersToShow = jiraDownloadResult.RetVal; break; } } catch (BulkExportException ex) { await modelHelpers.ShowMessageAsync("Unable To Locate Jira", ex.Message); modelHelpers.CloseFlyout(this); return; } if (!timersToShow.Any()) { await modelHelpers.ShowMessageAsync("Nothing To Export", "There Is No Time To Export"); modelHelpers.CloseFlyout(this); } else if (timersToShow.Count == 1) { modelHelpers.CloseFlyout(this); await modelHelpers.OpenFlyout(new Export(modelHelpers, timersToShow.First().Timer.UniqueId, null, true)); } else { var jiraComparer = new JiraReferenceComparer(); timersToShow.Sort((a, b) => { int cmp = b.ExportDate.Date.CompareTo(a.ExportDate.Date); if (cmp == 0) { cmp = jiraComparer.Compare(a.JiraRef, b.JiraRef); } return(cmp); }); timersToShow.ForEach(x => DataModel.BulkExports.Add(x)); if (oldModels != null) { foreach (var oldModel in oldModels) { foreach (var newModel in DataModel.BulkExports) { if (oldModel.JiraRef == newModel.JiraRef && oldModel.ExportDate.Date == newModel.ExportDate.Date) { newModel.ShouldExport = oldModel.ShouldExport; newModel.ToExportHours = oldModel.ToExportHours; newModel.ToExportMinutes = oldModel.ToExportMinutes; newModel.WorkLogStrategy = oldModel.WorkLogStrategy; newModel.RemainingHours = oldModel.RemainingHours; newModel.RemainingMinutes = oldModel.RemainingMinutes; newModel.Comment = oldModel.Comment; newModel.StandardComment = oldModel.StandardComment; newModel.ChangeStatus = oldModel.ChangeStatus; } } } } await modelHelpers.OpenFlyout(this); } }
private async void SetupContext(List <JiraTimer> timers) { await Task.Delay(50); modelHelpers.HideFlyout(this); var timersToShow = new List <BulkExportModel>(); var showError = false; try { var jiraDownloadResult = await progressDialogHelper.Do(controller => GetTimers(controller, timers), "Downloading Jira Work Logs To Ensure Accurate Export", true, true); switch (jiraDownloadResult.Status) { case ProgressResult.JiraHelperStatus.Cancelled: modelHelpers.CloseHiddenFlyout(this); return; case ProgressResult.JiraHelperStatus.Errored: await DialogCoordinator.Instance.ShowMessageAsync(modelHelpers.DialogContext, "Unable To Locate Jira", "There Was An Error Getting Work Logs"); showError = true; break; case ProgressResult.JiraHelperStatus.Success: timersToShow = jiraDownloadResult.RetVal; break; } } catch (BulkExportException ex) { await DialogCoordinator.Instance.ShowMessageAsync(modelHelpers.DialogContext, "Unable To Locate Jira", ex.Message); showError = true; } if (showError) { modelHelpers.CloseHiddenFlyout(this); return; } if (!timersToShow.Any()) { await DialogCoordinator.Instance.ShowMessageAsync(modelHelpers.DialogContext, "Nothing To Export", "There Is No Time To Export"); modelHelpers.CloseHiddenFlyout(this); } else if (timersToShow.Count == 1) { modelHelpers.CloseHiddenFlyout(this); modelHelpers.OpenFlyout(new Export(modelHelpers, timersToShow.First().Timer.UniqueId, null, true)); } else { var jiraComparer = new JiraReferenceComparer(); timersToShow.Sort((a, b) => { int cmp = b.ExportDate.Date.CompareTo(a.ExportDate.Date); if (cmp == 0) { cmp = jiraComparer.Compare(a.JiraRef, b.JiraRef); } return(cmp); }); timersToShow.ForEach(x => DataModel.BulkExports.Add(x)); modelHelpers.OpenFlyout(this); } }