public void InsertEmployee(Employee employee) { employee.ValidateRules(); Action procedure = () => { if (employee.Address !=null && !string.IsNullOrEmpty(employee.Address.HouseNumber)) { Database.Insert(employee.Address); } if (employee.AdditionalInfo!= null && !string.IsNullOrEmpty(employee.AdditionalInfo.Notes)) { Database.Insert(employee.AdditionalInfo); } Database.Insert(employee); employee.Programs.ForEach(p => { p.EmployeeId = employee.Id; Database.Insert(p); }); }; Database.ExecuteInTransaction(procedure); }
public void UpdateEmployee(Employee employee) { employee.ValidateRules(); Action procedure = () => { Database.Save(employee.Address); Database.Save(employee.FinancialInfo); Database.Save(employee.AdditionalInfo); Database.Update(employee); employee.Programs.ForEach(p => { p.EmployeeId = employee.Id; Database.Save(p); }); }; Database.ExecuteInTransaction(procedure); }
public void DeleteEmployee(Employee employee) { Action procedure = () => { Database.DeleteAll<EmployeeProgram>(ep => ep.EmployeeId == employee.Id); Database.Delete(employee.FinancialInfo); Database.Delete(employee.Address); Database.Delete(employee); }; Database.ExecuteInTransaction(procedure); }
private void BuildEntity(Employee e) { e.Programs = Database.RetrieveAll<EmployeeProgram>(ep => ep.EmployeeId == e.Id); }
private string ProgramsCanNotBeSame(Employee employee) { var errorMessage = ""; employee.Programs.ForEach(p => { var found = Programs.FindAll(program => program.ProgramId == p.ProgramId); if (found.Count >= 2) { errorMessage = "Two or more programs are same."; } }); return errorMessage; }