Skip to content
This repository was archived by the owner on Oct 3, 2022. It is now read-only.

Commit a0230db

Browse files
authored
Merge pull request #30 from BinderDyn/bugfix-assignments
Fix
2 parents 1512aa7 + 0d3545a commit a0230db

File tree

7 files changed

+59
-13
lines changed

7 files changed

+59
-13
lines changed
0 Bytes
Binary file not shown.

.vs/TakeMyTime.NETCore/v16/.suo

10.5 KB
Binary file not shown.

TakeMyTime.WPF/Assignments/AssignmentOverview.xaml

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -146,19 +146,18 @@
146146
</DataTemplate>
147147
</GridViewColumn.CellTemplate>
148148
</GridViewColumn>
149-
<GridViewColumn
149+
<!--<GridViewColumn
150150
Header="{x:Static resources:AssignmentOverview.ColumnHasDueDate}"
151151
Width="90">
152152
<GridViewColumn.CellTemplate>
153153
<DataTemplate>
154154
<CheckBox
155155
IsEnabled="False"
156-
Content="{Binding Path=HasDueDate}"
157-
>
156+
Content="{Binding Path=HasDueDate}">
158157
</CheckBox>
159158
</DataTemplate>
160159
</GridViewColumn.CellTemplate>
161-
</GridViewColumn>
160+
</GridViewColumn>-->
162161
<GridViewColumn
163162
Header="{x:Static resources:AssignmentOverview.ColumnDueDate}"
164163
Width="90"

TakeMyTime.WPF/Assignments/AssignmentOverview.xaml.cs

Lines changed: 24 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -32,27 +32,43 @@ public AssignmentOverview()
3232
{
3333
InitializeComponent();
3434
this.PagingManager = new PagingManager<AssignmentViewModel>(15);
35+
this.LoadProjectViewModels();
3536
this.Load();
3637
this.RefreshBindings(1);
3738
}
3839

39-
private void Load()
40+
private void LoadProjectViewModels()
4041
{
41-
var assignmentLogic = new AssignmentLogic();
4242
var projectLogic = new ProjectLogic();
43-
this.AssignmentViewModels = assignmentLogic.GetAllAssignments().Select(a => new AssignmentViewModel(a));
44-
this.FilteredAssignmentViewModels = this.AssignmentViewModels.ToList();
45-
this.PagingManager.Data = this.FilteredAssignmentViewModels.ToList();
4643
this.ProjectViewModels = projectLogic.GetAllProjects()
4744
.Where(p => p.ProjectStatus == EnumDefinition.ProjectStatus.Active)
4845
.Select(p => new Projects.ProjectViewModel(p)).ToList();
4946
string projectAllSelectItemName = ResourceStringManager.GetResourceByKey("ProjectsAll");
5047
this.ProjectViewModels.Insert(0, new Projects.ProjectViewModel { Name = projectAllSelectItemName, Id = 0 });
48+
this.cb_ProjectSelection.ItemsSource = this.ProjectViewModels;
49+
this.cb_ProjectSelection.SelectedItem = this.ProjectViewModels.Where(p => p.Id == 0);
50+
}
51+
52+
private void Load()
53+
{
54+
var assignmentLogic = new AssignmentLogic();
55+
this.AssignmentViewModels = assignmentLogic.GetAllAssignments().Select(a => new AssignmentViewModel(a));
56+
assignmentLogic.Dispose();
57+
if (this.SelectedProject != null)
58+
{
59+
this.FilteredAssignmentViewModels = this.AssignmentViewModels
60+
.Where(av => av.ProjectId == this.SelectedProject?.Id && av.StatusAsEnum == this.SelectedFilter)
61+
.ToList();
62+
}
63+
else
64+
{
65+
this.FilteredAssignmentViewModels = this.AssignmentViewModels;
66+
}
67+
this.PagingManager.Data = this.FilteredAssignmentViewModels.ToList();
5168
this.LoadFromAllProjects = true;
5269
this.lv_Assignments.ItemsSource = this.PagingManager.Page(this.PagingManager.CurrentPage);
53-
this.cb_ProjectSelection.ItemsSource = this.ProjectViewModels;
54-
this.cb_ProjectSelection.SelectedItem = this.ProjectViewModels.FirstOrDefault(p => p.Id == 0);
55-
this.cb_StatusFilter.SelectedItem = this.cbi_All;
70+
if (this.cb_ProjectSelection.SelectedItem != null) this.cb_ProjectSelection.SelectedItem = this.SelectedProject;
71+
if (this.cb_StatusFilter.SelectedItem != null) this.cb_StatusFilter.SelectedItem = this.SelectedFilter;
5672
}
5773

5874
#region GUI Events

TakeMyTime.WPF/Assignments/AssignmentViewModel.cs

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,9 @@ public AssignmentViewModel(Assignment assignment)
2727
this.ProjectId = assignment.Project_Id.Value;
2828
this.Planned = assignment.DatePlanned;
2929
this.HasSubtasks = assignment.Subtasks.Count() > 0;
30+
31+
this.StatusImage = GetImageByStatus(assignment.AssignmentStatus);
32+
this.StatusTooltip = GetStatusString(assignment.AssignmentStatus);
3033
}
3134

3235
public int Id { get; set; }
@@ -43,7 +46,11 @@ public AssignmentViewModel(Assignment assignment)
4346
public string PlannedAsString { get => DateTimeCultureConverter.GetCalendarWeek(this.Planned); }
4447
public int ProjectId { get; set; }
4548
public EnumDefinition.AssignmentStatus StatusAsEnum { get; set; }
46-
public Uri StatusImage { get => GetImageByStatus(this.StatusAsEnum); }
49+
public Uri StatusImage { get; private set; }
50+
public string StatusTooltip { get; private set; }
51+
52+
53+
4754
public bool HasSubtasks { get; private set; }
4855

4956
private Uri GetImageByStatus(EnumDefinition.AssignmentStatus status)
@@ -55,6 +62,20 @@ private Uri GetImageByStatus(EnumDefinition.AssignmentStatus status)
5562
EnumDefinition.AssignmentStatus.Default => new Uri("pack://application:,,,/Images/assignmentActiveIconSmall.png"),
5663
EnumDefinition.AssignmentStatus.Aborted => new Uri("pack://application:,,,/Images/assignmentAbortedIconSmall.png"),
5764
EnumDefinition.AssignmentStatus.Postponed => new Uri("pack://application:,,,/Images/assignmentPostponedIconSmall.png"),
65+
EnumDefinition.AssignmentStatus.Done => new Uri("pack://application:,,,/Images/assignmentDoneIconSmall.png"),
66+
_ => new Uri("pack://application:,,,/Images/assignmentActiveIconSmall.png")
67+
};
68+
}
69+
70+
private string GetStatusString(EnumDefinition.AssignmentStatus statusAsEnum)
71+
{
72+
return statusAsEnum switch
73+
{
74+
EnumDefinition.AssignmentStatus.InProgress => Resources.Shared.AssignmentActive,
75+
EnumDefinition.AssignmentStatus.Future => Resources.Shared.AssignmentFuture,
76+
EnumDefinition.AssignmentStatus.Default => Resources.Shared.AssignmentFuture,
77+
EnumDefinition.AssignmentStatus.Aborted => Resources.Shared.AssignmentAborted,
78+
EnumDefinition.AssignmentStatus.Postponed => Resources.Shared.AssignmentPostponed,
5879
_ => null
5980
};
6081
}
171 Bytes
Loading

TakeMyTime.WPF/TakeMyTime.WPF.csproj

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,11 @@
1111
<ItemGroup>
1212
<None Remove="Images\activeIconSmall.png" />
1313
<None Remove="Images\archiveIconSmall.png" />
14+
<None Remove="Images\assignmentAbortedIconSmall.png" />
15+
<None Remove="Images\assignmentActiveIconSmall.png" />
16+
<None Remove="Images\assignmentDoneIconSmall.png" />
17+
<None Remove="Images\assignmentFutureIconSmall.png" />
18+
<None Remove="Images\assignmentPostponedIconSmall.png" />
1419
</ItemGroup>
1520

1621
<ItemGroup>
@@ -216,6 +221,11 @@
216221
<ItemGroup>
217222
<Resource Include="Images\activeIconSmall.png" />
218223
<Resource Include="Images\archiveIconSmall.png" />
224+
<Resource Include="Images\assignmentAbortedIconSmall.png" />
225+
<Resource Include="Images\assignmentActiveIconSmall.png" />
226+
<Resource Include="Images\assignmentDoneIconSmall.png" />
227+
<Resource Include="Images\assignmentFutureIconSmall.png" />
228+
<Resource Include="Images\assignmentPostponedIconSmall.png" />
219229
</ItemGroup>
220230

221231
</Project>

0 commit comments

Comments
 (0)