Example #1
0
        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);
        }
Example #2
0
        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);
        }
Example #3
0
        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);
        }
Example #4
0
 private void BuildEntity(Employee e)
 {
     e.Programs = Database.RetrieveAll<EmployeeProgram>(ep => ep.EmployeeId == e.Id);
 }
Example #5
0
        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;
        }