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);
            }
        }
Example #2
0
        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);
            }
        }
Example #3
0
        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);
            }
        }