|
@@ -48,7 +48,7 @@ namespace PRSDesktop
|
|
|
}
|
|
|
|
|
|
private BitmapImage tick = PRSDesktop.Resources.tick.AsBitmapImage();
|
|
|
- private List<Guid> selectedrows = new List<Guid>();
|
|
|
+ public HashSet<Guid> SelectedIDs = new HashSet<Guid>();
|
|
|
|
|
|
private bool SelectedAction(CoreRow? arg)
|
|
|
{
|
|
@@ -65,10 +65,10 @@ namespace PRSDesktop
|
|
|
private void ToggleRow(CoreRow row)
|
|
|
{
|
|
|
Guid id = row.Get<LeaveRequest, Guid>(x => x.ID);
|
|
|
- if (selectedrows.Contains(id))
|
|
|
- selectedrows.Remove(id);
|
|
|
- else
|
|
|
- selectedrows.Add(id);
|
|
|
+ if (!SelectedIDs.Add(id))
|
|
|
+ {
|
|
|
+ SelectedIDs.Remove(id);
|
|
|
+ }
|
|
|
InvalidateRow(row);
|
|
|
}
|
|
|
|
|
@@ -76,7 +76,7 @@ namespace PRSDesktop
|
|
|
{
|
|
|
return arg == null
|
|
|
? tick
|
|
|
- : selectedrows.Contains(arg.Get<LeaveRequest,Guid>(x=>x.ID))
|
|
|
+ : SelectedIDs.Contains(arg.Get<LeaveRequest,Guid>(x=>x.ID))
|
|
|
? tick
|
|
|
: null;
|
|
|
}
|
|
@@ -94,11 +94,11 @@ namespace PRSDesktop
|
|
|
|
|
|
public void Process(IProgress<String> progress)
|
|
|
{
|
|
|
- if (!selectedrows.Any())
|
|
|
+ if (SelectedIDs.Count == 0)
|
|
|
return;
|
|
|
|
|
|
var employeeids = Data.ToDictionary<LeaveRequest, Guid, Guid>(x => x.ID, x => x.EmployeeLink.ID)
|
|
|
- .Where(x=>selectedrows.Contains(x.Key))
|
|
|
+ .Where(x => SelectedIDs.Contains(x.Key))
|
|
|
.Select(x=>x.Value)
|
|
|
.Distinct()
|
|
|
.ToArray();
|
|
@@ -120,7 +120,7 @@ namespace PRSDesktop
|
|
|
List<LeaveRequest> leaves = new List<LeaveRequest>();
|
|
|
foreach (var row in Data.Rows)
|
|
|
{
|
|
|
- if (selectedrows.Contains(row.Get<LeaveRequest, Guid>(x => x.ID)))
|
|
|
+ if (SelectedIDs.Contains(row.Get<LeaveRequest, Guid>(x => x.ID)))
|
|
|
{
|
|
|
var leave = row.ToObject<LeaveRequest>();
|
|
|
var employee = employees.FirstOrDefault(x => x.ID == leave.EmployeeLink.ID);
|
|
@@ -129,7 +129,7 @@ namespace PRSDesktop
|
|
|
var roster = !String.IsNullOrWhiteSpace(rosters[employee.ID])
|
|
|
? Serialization.Deserialize<List<EmployeeRosterItem>>(rosters[employee.ID])?.OrderBy(x => x.Day).ToArray()
|
|
|
: null;
|
|
|
- progress.Report($"Processing Leave Request {((double)i * 100.0F / (double)selectedrows.Count):F2}");
|
|
|
+ progress.Report($"Processing Leave Request {((double)i * 100.0F / (double)SelectedIDs.Count):F2}");
|
|
|
var timesheets = RosterUtils.CreateLeaveTimesheets(
|
|
|
employee,
|
|
|
roster,
|