public void Create(FullUser fullUser) { if ( fullUser.IsValid() && fullUser.Worker.IsValid(_workerServices.Read().Select(x => x.PassportNumber).ToList()) && (fullUser?.User?.IsValid(_userServices.Read().Select(y => y.Login).ToList()) ?? true) ) { try { _workerServices.Create(fullUser.Worker); } catch (Exception) { throw; } if (fullUser.User != null) { fullUser.User = _userServices.Create(fullUser.User); foreach (var item in fullUser.Roles) { _userRoleServices.Create(new UserRole() { UserId = fullUser.User.Id, RoleId = item.Id }); } } } }
public void Update(FullUser fullUser) { if (fullUser.IsValid()) { _workerServices.Update(fullUser.Worker, fullUser.Worker.PersonalData); _userServices.Delete(new User(), fullUser.Worker.PassportNumber); if (fullUser.User != null) { fullUser.User = _userServices.Create(fullUser.User); int length = fullUser.Roles.Count; for (int i = 0; i < length; i++) { UserRole userRole = new UserRole() { RoleId = fullUser.Roles[i].Id, UserId = fullUser.User.Id }; _userRoleServices.Create(userRole); } } } }