public MicroOrmComparison.UI.Models.Employee Add(MicroOrmComparison.UI.Models.Employee employee) { var employeeToInsert = AutoMapper.Mapper.Map<MicroOrmComparison.UI.Models.Employee, Employee>(employee); using (var db = new EmployeeDb()) { db.Employees.AddOrUpdate(employeeToInsert); if (employeeToInsert.Addresses != null) { foreach (var address in employeeToInsert.Addresses) { db.Addresses.AddOrUpdate(address); } } if (employeeToInsert.AssignedRoles != null) { foreach (var roleId in employeeToInsert.AssignedRoles.Select(x => x.Id).Distinct()) { var roleToInsert = new AssignedRole { EmployeeId = employeeToInsert.Id, RoleId = roleId }; db.AssignedRoles.Add(roleToInsert); } } db.SaveChanges(); employee.Id = employeeToInsert.Id; } return employee; }
public void Remove(int id) { using (var db = new EmployeeDb()) { var employeeToRemove = db.Employees.First(x => x.Id == id); if (employeeToRemove.Addresses != null) { db.Addresses.RemoveRange(employeeToRemove.Addresses); } if (employeeToRemove.AssignedRoles != null) { db.AssignedRoles.RemoveRange(employeeToRemove.AssignedRoles); } db.Employees.Remove(employeeToRemove); db.SaveChanges(); } }
public void RemoveRole(int employeeId, int roleId) { using (var db = new EmployeeDb()) { db.AssignedRoles.Remove(db.AssignedRoles.FirstOrDefault(ar => ar.RoleId == roleId && ar.EmployeeId == employeeId)); db.SaveChanges(); } }