Ejemplo n.º 1
0
        private async void Save()
        {
            try
            {
                if (Issues.Where(p => p.IsResolved == true).Count() > 0)
                {
                    Acr.UserDialogs.UserDialogs.Instance.ShowLoading("Saving...");
                    Job.Date         = DateTime.Now;
                    Job.TechnicianId = Technician.TechnicianId;

                    var result = await ServerPath.Path
                                 .AppendPathSegment("/api/jobcards/addjobcard/" + AdminModule.TenantName).WithOAuthBearerToken(AdminModule.AccessToken).PostJsonAsync(Job);

                    if (result != null)
                    {
                    }
                }
                else
                {
                    await Acr.UserDialogs.UserDialogs.Instance.AlertAsync("Select atleast one issue.");
                }
            }
            catch (Exception ex)
            {
                await Acr.UserDialogs.UserDialogs.Instance.AlertAsync(ex.Message);
            }
        }
Ejemplo n.º 2
0
 /// <summary>
 /// Produces an exception from a result, ordered by descending severity.
 /// </summary>
 public ResultException ToException()
 {
     return(Issues
            .Where(issue => !ReferenceEquals(issue, null))
            .OrderByDescending(issue => issue.Level)
            .Aggregate <ResultIssue, ResultException>(null, (inner, issue) => new ResultException(issue, inner)));
 }
Ejemplo n.º 3
0
        public IEnumerable <WorkIssue> GetIssuesByDay(int day)
        {
            var date = new DateTime(DateTime.Now.Year, DateTime.Now.Month, day);

            return(Issues.Where(t => t.End.HasValue && t.End.Value.IsDay(date))
                   .AsEnumerable());
        }
Ejemplo n.º 4
0
 public void Refresh()
 {
     if (Issues != null && Issues.Any())
     {
         Cost            = Issues.Sum(t => t.Price);
         TimeToDo        = Issues.Sum(t => t.IssueEstimation);
         CompletedIssues = Issues.Where(t => t.IsCompleted()).ToList();
         NewIssues       = Issues.Where(t => t.Status == IssueStatus.New).ToList();
         LastIssues      = Issues.OrderByDescending(t => t.CreatedDate).TakeMax(10).ToList();
     }
 }
Ejemplo n.º 5
0
        public async void RefreshGraveyard()
        {
            if (_reloadNeeded == false)
            {
                return;
            }

            await Task.Factory.StartNew(() =>
            {
                try
                {
                    foreach (var issue in Issues.Where(i => i.Resolved.HasValue == false))
                    {
                        DispatcherHelper.CheckBeginInvokeOnUI(() =>
                        {
                            var sinceUpdate   = DateTime.Now - issue.BuiltInFields.Updated;
                            var sinceCreation = DateTime.Now - issue.BuiltInFields.Created;
                            if (sinceUpdate > _graveyardSettings.UpdateMoreThanBefore)
                            {
                                OldUpdated.Add(issue);
                            }

                            if (sinceCreation > _graveyardSettings.ArchaicCreatedMoreThanBefore)
                            {
                                ArchaicCreated.Add(issue);
                            }
                            else if (sinceCreation > _graveyardSettings.CreatedMoreThanBefore)
                            {
                                OldCreated.Add(issue);
                            }

                            if (issue.BuiltInFields.Assignee != null && issue.BuiltInFields.Assignee.Active == false)
                            {
                                InactiveAssignee.Add(issue);
                            }

                            if (string.IsNullOrWhiteSpace(issue.Description))
                            {
                                MissingDescription.Add(issue);
                            }
                        });
                    }

                    _reloadNeeded = false;
                }
                finally
                {
                    IsBusy = false;
                }
            });
        }
Ejemplo n.º 6
0
 private async void GetTechnician()
 {
     if (Issues.Where(p => p.IsResolved == true).Count() > 0)
     {
         NavigationParameters para = new NavigationParameters();
         AdminModule.Issues = new List <Issue>(Issues.Where(p => p.IsResolved == true).ToList());
         para.Add("job", Job);
         await _navigationService.NavigateAsync("AdminAddTechnician", para);
     }
     else
     {
         await Acr.UserDialogs.UserDialogs.Instance.AlertAsync("Selected at least one item.");
     }
 }
Ejemplo n.º 7
0
 private void AddRange()
 {
     AdminModule.hubProxy.On <JobCard>("addJobCard", async text =>
     {
         try
         {
             var selected            = Issues.Where(p => p.IsResolved == true).ToList();
             List <JobItem> JobItems = new List <JobItem>();
             foreach (var item in selected)
             {
                 JobItems.Add(new JobItem {
                     IssueId = item.IssueId, JobCardId = text.JobCardId, JobItemId = item.IssueId
                 });
             }
             Acr.UserDialogs.UserDialogs.Instance.ShowLoading("Updating issues");
             var result = await ServerPath.Path
                          .AppendPathSegment("/api/jobitems/addrange/" + AdminModule.TenantName).WithOAuthBearerToken(AdminModule.AccessToken).PostJsonAsync(JobItems);
             if (result.StatusCode == System.Net.HttpStatusCode.OK)
             {
                 Issues      = null;
                 Technician  = null;
                 Technicians = null;
                 Acr.UserDialogs.UserDialogs.Instance.HideLoading();
                 await Acr.UserDialogs.UserDialogs.Instance.AlertAsync("Job card created.");
             }
             else
             {
             }
         }
         catch (Exception)
         {
         }
         finally
         {
             try
             {
             }
             catch (Exception ex)
             {
                 throw;
             }
         }
     });
 }
Ejemplo n.º 8
0
 private void ComputeCfd()
 {
     var cumulativeFlow = Issues
                          .Where(ticket => ticket.Entered(Config.CommitmentStartColumns).HasValue)
                          .Where(ticket => ticket.Entered(Config.InProgressStartColumns).HasValue)
                          .Where(ticket => ticket.Entered(Config.DoneColumns).HasValue)
                          .Where(ticket => ticket.Entered(Config.DoneColumns) >= StartDate)
                          // ReSharper disable once PossibleInvalidOperationException
                          .Select(ticket => ticket.Entered(Config.DoneColumns).Value.GetWeekEndDate())
                          .Distinct()
                          .OrderBy(_ => _)
                          .Select(weekEndDate => CumulativeFlow(weekEndDate, Issues))
                          .OrderBy(_ => _["Week"])
                          .ToList();
     {
         var floor     = cumulativeFlow.Count > 0 ? cumulativeFlow.Min(_ => (int)_["Done"]) : 0;
         var keys      = cumulativeFlow.Count > 0 ? cumulativeFlow.First().Keys.Except(new[] { "Week" }).Reverse().ToList() : new List <string>();
         var chart     = new Chart();
         var chartArea = new ChartArea();
         chart.ChartAreas.Add(chartArea);
         chart.Legends.Add("legend").Docking = Docking.Bottom;
         foreach (var key in keys)
         {
             var series = new Series {
                 ChartType = SeriesChartType.StackedArea
             };
             series.Points.DataBindXY(cumulativeFlow.Select(_ => _["Week"]).ToArray(),
                                      cumulativeFlow.Select(_ => (int)_[key] - (key == "Done" ? floor : 0))
                                      .ToArray());
             series.Legend     = "legend";
             series.LegendText = key;
             chart.Series.Add(series);
         }
         chartArea.AxisX.Interval         = 1;
         chartArea.AxisX.LabelStyle.Angle = -65;
         chartArea.AxisY.IntervalAutoMode = IntervalAutoMode.VariableCount;
         chartArea.AxisY.Title            = "Number of items";
         CumulativeFlowDiagramChart       = chart;
     }
 }
Ejemplo n.º 9
0
 public TodayTasksVM()
 {
     InitializeData();
     TodayIssues = new ObservableCollection <Issue>(Issues.Where(x => x.IssueDate.Date == DateTime.Now.Date).ToList());
 }
        private void Update(Issue obj)
        {
            var updateItem = Issues.Where(p => p.IssueId == obj.IssueId).FirstOrDefault();

            updateItem.Status = "Resolved";
        }
Ejemplo n.º 11
0
 public List <WorkIssue> GetUpdatedBy(string userName)
 {
     return(Issues.Where(t => t.UpdatedBy.ToLower() == userName.ToLower()).ToList());
 }
Ejemplo n.º 12
0
 public List <WorkIssue> GetYesterday()
 {
     return(Issues.Where(t => t.IsYesterday()).ToList());
 }
Ejemplo n.º 13
0
 public List <WorkIssue> GetTomorrow()
 {
     return(Issues.Where(t => t.IsTomorrow()).ToList());
 }