private bool FileSave() { Cursor.Current = Cursors.WaitCursor; try { if (!DataIsValid()) { return(false); } // Update MANDATORY COMPUTATIONS foreach (var emp in ListOfEmployees) { emp.Deductions.LoadAllItemsWithDeduction(); DeductionGenerator.UpdateMandatoryDeductions(emp); var mandatoryWriter = new PayrollEmployeeDataWriter(App.CurrentUser.User.Username, emp); mandatoryWriter.SaveChanges(); } //ItemData.Id = ; ItemData.PayrollType = "Regular"; ItemData.DateCovered = dtPeriod.Value; ItemData.Remarks = txtRemarks.Text; var generator = new PayrollGenerator(); pbStatus.Maximum = ListOfEmployees.Count(); pbStatus.Text = ""; pbStatus.Visible = true; pbStatus.Refresh(); generator.Generate(ItemData, ListOfEmployees, OnProgress); var writer = new PayrollPeriodDataWriter(App.CurrentUser.User.Username, ItemData); writer.SaveChanges(); App.LogAction("Payroll", "Generated New Payroll :" + dtPeriod.Value.ToString("yyyy MMMM dd")); return(true); } catch (Exception ex) { MessageDialog.ShowError(ex, this); return(false); } }