private dynamic ToDynamicRow(AnalyzedIssue issue, Mapper mapper) { dynamic row = mapper.Map <ExpandoObject>(issue); row.OriginalEstimate = issue.OriginalEstimate.HasValue ? TimeSpan.FromMinutes(issue.OriginalEstimate.Value).TotalDays : (double?)null; row.TimeSpent = issue.TimeSpent.HasValue ? TimeSpan.FromMinutes(issue.TimeSpent.Value).TotalDays : (double?)null; row.IsValid = TasksSource.IsValidIssue(issue); row.DurationDays = issue.Duration?.TotalDays; return(row); }
public JiraUpdateViewModel(TasksSource tasksSource, ICurrentTime currentTime) { _tasksSource = tasksSource; _currentTime = currentTime; DisplayName = "Jira update"; UpdateCommand = ReactiveCommand.CreateFromTask(UpdateJira); UpdateProgress = -1; StartFromDate = currentTime.UtcNow.AddYears(-1).AddMonths(-3); _projects = new ObservableCollection <JiraProjectViewModel>(); }
public IssuesGridViewModel(TasksSource tasksSource, IStateFilteringProvider stateFilteringProvider, ICurrentProject currentProject) { _tasksSource = tasksSource; _stateFilteringProvider = stateFilteringProvider; _currentProject = currentProject; DisplayName = "Issues grid"; Issues = new ObservableCollection <dynamic>(); _currentProject.ProjectKeyChanged += async(sender, args) => { if (IsActive) { await Update(); } }; }
public ProjectSelectorViewModel(TasksSource tasksSource) { _tasksSource = tasksSource; ProjectKeys = new ObservableCollection <string>(); }